是否可以使用shell搜索文件然后替换值?当我安装服务时,我希望能够在配置文件中搜索变量,然后在该值中替换/插入我自己的设置。
答案 0 :(得分:25)
当然,你可以使用sed或awk来做到这一点。 sed例子:
sed -i 's/Andrew/James/g' /home/oleksandr/names.txt
答案 1 :(得分:8)
您可以使用sed执行搜索/替换。我通常从bash shell脚本执行此操作,并将包含要替换的值的原始文件移动到新名称,然后运行sed将输出写入我的原始文件名,如下所示:
#!/bin/bash
mv myfile.txt myfile.txt.in
sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt.
如果您未指定输出,则替换将转到stdout。
答案 2 :(得分:2)
sed -i 's/variable/replacement/g' *.conf
答案 3 :(得分:1)
您可以使用sed执行此操作:
sed -i 's/toreplace/yoursetting/' configfile
sed可能在每个类似unix的系统上都可用。如果要替换多个出现,可以在s命令中添加g:
sed -i 's/toreplace/yoursetting/g' configfile
请注意,如果未正确指定toreplace-value,则会完全破坏配置文件。 sed还支持搜索和替换中的正则表达式。
答案 4 :(得分:1)
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.tmp
mv tempfile.tmp $file
let i++;
echo "Modified: " $file
done
答案 5 :(得分:0)
通常使用像awk或sed这样的工具。
$ sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
答案 6 :(得分:0)
使用Perl查看UNIX power tools awk,sed,grep 和in-place edit of files。