請問指定行以後n行 要如何加上特定字元 - Linux

Table of Contents

小弟有個需求

file.txt

AAAAA
BBBBB
CCCCC
DDDDD
EEEEE
FFFFF

想改成 找到CCCCC之後的三行 前面加上@


AAAAA
BBBBB
@CCCCC
@DDDDD
@EEEEE
FFFFF

想用sed
但CCCCC不是特定行數
請問各位版友有何想法提示呢?

感謝


--

All Comments

Leila avatarLeila2015-07-26
最笨的辦法 先用grep 找到CCCCC那一行 行數
Susan avatarSusan2015-07-26
然後紀錄該行內容為變數 例如 line 然後echo "@"$line
Catherine avatarCatherine2015-07-27
sed -i '/CCCCC/,+2 s/^/@/' file.txt
Wallis avatarWallis2015-08-01
謝謝樓上兩位熱心幫忙 兩個方法我都有試出來 R大的方法
Charlotte avatarCharlotte2015-08-01
更是我要的解法 不過因為是在開發版遇到類似的問題
Frederica avatarFrederica2015-08-02
用的是busybox v1.19.4 其中sed.c裡面好像是不支援第二
Una avatarUna2015-08-06
區塊格式是/,+3s/ 所以版子上會有錯誤訊息:
Lydia avatarLydia2015-08-09
sed: no address after comma
Freda avatarFreda2015-08-10
而一般linux主機沒有問題,因此後來我有找到其他方法解決
Sandy avatarSandy2015-08-11
是假設已經知道要找的目標 第一行是CCCCC 第三行是EEEEE
Kelly avatarKelly2015-08-11
先找到目標區塊 再新增@到目標區塊的行首
Lauren avatarLauren2015-08-13
=> sed -i '/CCCCC/,/EEEEE/s/^/@/' 也可以達到效果
Kama avatarKama2015-08-15
但是缺點就是解法 跟我提問的指定行以後n行 有一點點
Rebecca avatarRebecca2015-08-18
牛頭不對馬嘴; 再次謝謝
Connor avatarConnor2015-08-20
busybox也只能這樣了XD