使用awk替换第一次出现的文本

时间:2013-08-12 21:12:36

标签: awk gawk

下面的代码替换了第一次出现的apple with banana。 如何使用awk / gawk实现相同的目标?

sed -i "0,/apple/s//banana/" myfile.txt

1 个答案:

答案 0 :(得分:5)

这就是我想出的:

awk '!x{x=sub("apple","banana")}7' file

例如:

kent$  cat f
foo
apple
foo
apple
apple

kent$  awk '!x{x=sub("apple","banana")}7' f
foo
banana
foo
apple
apple

对于sed -i(就地更改)部分,如果你使用gawk 4.1.0,你也有这个选项。否则,你必须使用临时文件。