3

下面的代码将第一次出现的苹果替换为香蕉。我如何使用 awk / gawk 达到同样的效果?

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

1 回答 1

8

这就是我想出的:

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,您也有该选项。否则,您必须使用临时文件。

于 2013-08-12T21:21:51.360 回答