sed如何从标准输入中替换

埃尔巴纳

我必须用密码字段代替(搜索和替换)在不同目录中找到的文件。所有字段的格式为:field = value

我尝试过的是:

grep -i  fieldofinterest /etc/filemod*/*| sed  's/[=].*$/ = myvalue/'

这似乎可行,但是如果我尝试编写,则没有输入文件错误。

我该如何进行替换?

杰夫·谢勒(Jeff Schaller)

袖口:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章