任何人都可以帮我在linux中编写一个shell脚本,它将取代特定文件中的主机名。
例如:我有多个具有特定IP地址的文件。
http://10.160.228.12:8001/soa-infra/services/default/AIAAsyncErrorHandlingBPELProcess/client?WSDL
http://VQAIAAPPDEV:8001/soa-infra/services/default/AIAAsyncErrorHandlingBPELProcess/client?WSDL
基本上我想要替换的是“http://”和“:8001”之间的字符串以及任何必需的字符串。
有人可以帮我这个。
更多信息: -
我希望在许多文件夹中迭代执行此操作。所以基本上它会搜索每个文件夹中的所有文件并执行必要的更改。
答案 0 :(得分:2)
您可以使用sed
。话说:
sed -r 's|(http://)([^:]*)(:8001)|\1something\3|g' filename
将替换为“http://”和“:8001”与something
之间的字符串。
如果您想就地更改文件,请使用-i
选项:
sed -i -r 's|(http://)([^:]*)(:8001)|\1something\3|g' filename
答案 1 :(得分:0)
使用Linux shell中的sed命令
sed -i's%OldHost%NewHost%g'/ yourfolder / yourfile
答案 2 :(得分:0)
尝试“for”
# cat replace.txt
http://10.160.228.12:8001/soa- infra/services/default/AIAAsyncErrorHandlingBPELProcess/client?WSDL
http://VQAIAAPPDEV:8001/soa-infra/services/default/AIAAsyncErrorHandlingBPELProcess/client?WSDL
# for i in `cat replace.txt | awk -F: '{print $2}' | sed 's/^\/\///g' | sed '/^$/d'` ; do sed -i "s/$i/Your_hostname/" replace.txt ; done
# cat replace.txt
http://Your_hostname:8001/soa- infra/services/default/AIAAsyncErrorHandlingBPELProcess/client?WSDL
http://Your_hostname:8001/soa-infra/services/default/AIAAsyncErrorHandlingBPELProcess/client?WSDL
它为我工作......!