在shell脚本中查找和replace

是否有可能使用shell在文件中search,然后replace值? 当我安装一个服务时,我希望能够在configuration文件中search一个variables,然后用该值replace/插入我自己的设置。

Solutions Collecting From Web of "在shell脚本中查找和replace"

当然,你可以使用sed或awk来做到这一点。 sed例子:

sed -i 's/Andrew/James/g' /home/oleksandr/names.txt 

您可以使用sed执行搜索/替换。 我通常从bash shell脚本中执行此操作,并将包含要替换的值的原始文件移动到新名称,然后运行sed将输出写入我的原始文件名,如下所示:

 #!/bin/bash mv myfile.txt myfile.txt.in sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt. 

如果您不指定输出,替换将转到标准输出。

 sed -i 's/variable/replacement/g' *.conf 

你可以使用sed来做到这一点:

 sed -i 's/toreplace/yoursetting/' configfile 

sed可能在每个unix系统上都有。 如果要替换多个事件,可以将s添加到s命令中:

 sed -i 's/toreplace/yoursetting/g' configfile 

要小心,因为如果不正确地指定toreplace-value,可能会完全破坏你的配置文件。 sed也支持正则表达式在搜索和替换。

 filepath="/var/start/system/dir1" searchstring="test" replacestring="test01" i=0; for file in $(grep -l -R $searchstring $filepath) do cp $file $file.bak sed -e "s/$searchstring/$replacestring/ig" $file > tempfile.tm`enter code here`p mv tempfile.tmp $file let i++; echo "Modified: " $file done 

通常使用awk或sed等工具。

 $ sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt 

使用Perl查看UNIX电源工具 awk,sed,grep和就地编辑文件 。