[问题] 请问指定行以后n行 要如何加上特定字符

楼主: thisgo (寻梦园)   2015-07-22 00:06:48
小弟有个需求
file.txt
AAAAA
BBBBB
CCCCC
DDDDD
EEEEE
FFFFF
想改成 找到CCCCC之后的三行 前面加上@

AAAAA
BBBBB
@CCCCC
@DDDDD
@EEEEE
FFFFF
想用sed
但CCCCC不是特定行数
请问各位版友有何想法提示呢?
感谢
作者: noonee (我和烤肉间只差一撮孜然)   2015-07-22 03:12:00
最笨的办法 先用grep 找到CCCCC那一行 行数然后纪录该行内容为变量 例如 line 然后echo "@"$line
作者: Reylod (Reylod)   2015-07-22 10:42:00
sed -i '/CCCCC/,+2 s/^/@/' file.txt
楼主: thisgo (寻梦园)   2015-07-24 23:16:00
谢谢楼上两位热心帮忙 两个方法我都有试出来 R大的方法更是我要的解法 不过因为是在开发版遇到类似的问题用的是busybox v1.19.4 其中sed.c里面好像是不支援第二区块格式是/,+3s/ 所以版子上会有错误讯息:sed: no address after comma而一般linux主机没有问题,因此后来我有找到其他方法解决是假设已经知道要找的目标 第一行是CCCCC 第三行是EEEEE先找到目标区块 再新增@到目标区块的行首=> sed -i '/CCCCC/,/EEEEE/s/^/@/' 也可以达到效果但是缺点就是解法 跟我提问的指定行以后n行 有一点点牛头不对马嘴; 再次谢谢
作者: Reylod (Reylod)   2015-07-27 09:00:00
busybox也只能这样了XD

Links booklink

Contact Us: admin [ a t ] ucptt.com