我只想sed一个文本文件的最后一个匹配模式。

输入文件:

boy
boy
girl
boy

输出文件:
boy
boy
girl
boys

最佳答案

一种方法是反转文件,仅替换第一个匹配项,然后再次将其反转。

tac <file> | sed '1 s/boy/boys/' | tac | sponge <newfile>

tac将“串联并反向打印文件”。海绵将“吸收标准输入并写入文件”。它在debian上的“moreutils”包中。

10-04 16:24