Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 替换shell脚本中的字符串所需的正则表达式_Regex_Linux_Shell - Fatal编程技术网

Regex 替换shell脚本中的字符串所需的正则表达式

Regex 替换shell脚本中的字符串所需的正则表达式,regex,linux,shell,Regex,Linux,Shell,谁能帮我在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 基

谁能帮我在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”之间的字符串

有人能帮我做这个吗

更多信息:-


我想在许多文件夹中迭代执行此操作。因此,基本上它将搜索每个文件夹中的所有文件并执行必要的更改。

您可以使用
sed
。说:

sed -r 's|(http://)([^:]*)(:8001)|\1something\3|g' filename
将“http://”和“:8001”之间的字符串替换为
something

如果要就地更改文件,请使用
-i
选项:

sed -i -r 's|(http://)([^:]*)(:8001)|\1something\3|g' filename

使用Linux shell中的sed命令

sed-i的%OldHost%NewHost%g'/yourfolder/yourfile

尝试使用“for”


它对我有用

如果我想反复签入多个文件夹中的文件并进行必要的更改,该怎么办?@user3056318使用
find
。你可以说:
find/some/path-typef-exec sed-i-r's |(http://)([^:]*)(:8001)|\1something\3 | g'{} @ USER 3056318考虑它是否为你工作。您可能还需要参考。
 # 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