给定这个文件
$ cat foo.txt
AAA
111
BBB
222
CCC
333
我想替换之后的第一行BBB
with 999
。我想出了这个命令
awk '/BBB/ {f=1; print; next} f {$1=999; f=0} 1' foo.txt
但我对 awk 或 sed 的任何较短命令感到好奇。
这可能对你有用(GNU sed)
sed '/BBB/!b;n;c999' file
如果一行包含BBB
,打印该行,然后将以下行更改为999
.
!b
否定先前的地址(正则表达式)并中断任何处理,结束 sed 命令,n
打印当前行,然后将下一行读入模式空间,c
将当前行更改为命令后面的字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)