[問題] 請問指定行以後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