是否可以使用 shell 在文件中搜索然后替换一个值?当我安装服务时,我希望能够在配置文件中搜索出一个变量,然后在该值中替换/插入我自己的设置。
问问题
53000 次
7 回答
29
当然,您可以使用 sed 或 awk 执行此操作。sed 示例:
sed -i 's/Andrew/James/g' /home/oleksandr/names.txt
于 2012-06-01T20:16:53.590 回答
9
您可以使用 sed 执行搜索/替换。我通常从 bash shell 脚本执行此操作,并将包含要替换的值的原始文件移动到一个新名称,然后运行 sed 将输出写入我的原始文件名,如下所示:
#!/bin/bash
mv myfile.txt myfile.txt.in
sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt.
如果您不指定输出,则替换将转到标准输出。
于 2012-06-01T22:23:34.043 回答
2
sed -i 's/variable/replacement/g' *.conf
于 2012-06-01T20:18:30.050 回答
1
您可以使用 sed 来执行此操作:
sed -i 's/toreplace/yoursetting/' configfile
sed 可能在每个类似 unix 的系统上都可用。如果要替换多个出现,可以将 ag 添加到 s 命令:
sed -i 's/toreplace/yoursetting/g' configfile
请小心,因为如果您没有正确指定 toreplace-value,这可能会完全破坏您的配置文件。sed 还支持搜索和替换中的正则表达式。
于 2012-06-01T20:17:54.027 回答
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
于 2014-06-01T22:14:23.457 回答
0
通常为此使用 awk 或 sed 之类的工具。
$ sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
于 2012-06-01T20:17:19.007 回答