递归 grep 和 sed

recursive grep and sed

文件 1:

   some line1
   some line2
   text1    text2   text3
   some line3
   text1    text2   text4
   some line3

我只想在有 text3 的行中用 say NEW 替换 text1

最终输出应该是

   some line1
   some line2
   NEW      text2   text3
   some line3
   text1    text2   text4
   some line3

我正在尝试使用 grep 和 sed,但没有帮助。

感谢任何帮助。

您可以使用 sed:

sed '/text3/s/text1/NEW/g' file
some line1
some line2
NEW    text2   text3
some line3
text1    text2   text4
some line3
$ sed '/text3/s/text1/NEW/' file
   some line1
   some line2
   NEW    text2   text3
   some line3
   text1    text2   text4
   some line3

$ awk '/text3/{sub(/text1/,"NEW")}1' file
   some line1
   some line2
   NEW    text2   text3
   some line3
   text1    text2   text4
   some line3