我必须用密码字段代替(搜索和替换)在不同目录中找到的文件。所有字段的格式为:field = value
我尝试过的是:
grep -i fieldofinterest /etc/filemod*/*| sed 's/[=].*$/ = myvalue/'
这似乎可行,但是如果我尝试编写,则没有输入文件错误。
我该如何进行替换?
袖口:
grep -l fieldofinterest /etc/filemod*/* | while read filename; do
sed 's/fieldofinterest.*/fieldofinterest = myvalue/' "$filename" > tmp && mv tmp "$filename"
done
这将收集grep -l
包含感兴趣字段的文件名,并将它们传递到while
循环以sed
通过临时文件进行替换。如果您的sed有,-i
您可以将其简化为:
grep -l fieldofinterest /etc/filemod*/* | while read filename; do
sed -i 's/fieldofinterest.*/fieldofinterest = myvalue/' "$filename"
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句