linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何实现?相关的知识,希望对你有一定的参考价值。
linux中想在脚本中实现修改一个ip地址参数的配置文件,如果用sed实现?
如IP=192.168.0.55
替换成IP=102.117.2.23
还有其他方法吗?如awk?小弟能力有限,刚刚接触脚本,谢谢了
注:
1)将不变的部分放入带反斜杠的一对括号 \( \) 中并在替换时用 \1 引用。
2)\S用于匹配除单个空格符之外的所有字符。
awk -F"=" 'if($1=="IP")print("IP=102.117.2.23")' filename > filename.new 2>/dev/null 参考技术A sed ‘s/192\.168\.0\.55/102\.117\.2\.23/g’ s是替换 g是全局的替换 .要转义 满意请采纳,谢谢 不满意请追问,共同探讨追问
首先感谢你的帮助!
但是IP后面的具体ip地址是不确定的,因为是配置文件,所以想匹配到IP后就把后面的具体值替换。如果早知道具体值也不会这么麻烦
直接sed -i 's/192.*/102.117.2.23/' filename 不就可以了吗?
想用模糊匹配,比如IP=*,但是试了不行
弄不好你那IP 还不是以192开头的呢,你可以用正则表达式把ip地址做一个匹配试试看。
如何在Python中实现argparse
我是Python新手,我弄了一个小脚本来上传文件到S3,目前我只在脚本中硬编码了一个单文件,桶名也是硬编码的。
我想在这个脚本中合并argparse,这样我就可以自己添加一些参数,上传不同的文件。例如,在命令行中,我可以指定参数来决定 file_name x
上传到 bucket_name xxx
.
我一直在阅读关于如何设置argparse的文档,但我只能做一些小的改动,不知道如何在我的脚本中用函数来实现它(我猜测 os.rename
将不需要,因为我们会自己解析论证)。) 我知道这些逻辑,只是在实际的代码中很难实现。谁能给我一个例子或者给我一些提示,非常感谢。
下面是脚本在接受命令行参数时的样子。
import argparse
import datetime
import logging
import os
import boto3
def make_new_key(filename: str):
current_date = datetime.datetime.today().strftime('%Y-%m-%d_%H_%M_%S')
# The next line handles the case where you are passing the
# full path to the file as opposed to just the name
name = os.path.basename(filename)
parts = name.split('.')
new_name = f"{parts[0]}{current_date}.csv"
return new_name
def upload_to_s3(source_filename: str, new_name: str, bucket: str):
logging.info(f"Uploading to S3 from {source_filename} to {bucket} {key}")
s3_client = boto3.client("s3")
with open(source_filename, 'rb') as file:
response = s3_client.put_object(Body=file,
Bucket=bucket,
Key=new_name,
ACL="bucket-owner-full-control")
logging.info(response)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--filename')
parser.add_argument('--bucket')
args = parser.parse_args()
new_name = make_new_key(args.filename)
upload_to_s3(args.filename, new_name, args.bucket)
然后你会像这样调用脚本
python upload.py --filename path/to/file --bucket name_of_bucket
以上是关于linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何实现?的主要内容,如果未能解决你的问题,请参考以下文章