vi 將某些特定行移到前一行後面 - Linux

Table of Contents

描述得可能不太好

簡單說,我有一個文字檔,內容大概如下

AAAA
BB
CCCC
BBDDDDD
EEE
BBBBBBAAASSSS

我想要將開頭是 BB的每一行,接到前一行的最後,變成底下的內容

AAAABB
CCCBBDDDD
EEEBBBBBBAAASSS

可是一直找不到該怎麼下語法....
還請各位鄉民幫幫忙, thanks !

--

All Comments

Blanche avatarBlanche2015-05-04
在上一行打大寫J 下一行就會併上來了
還是你是要用script做這件事?
Agatha avatarAgatha2015-05-05
大寫J是不管下一行是啥 直接併啊,我是只要併BB開頭的
然後我是要用script沒錯
Tristan Cohan avatarTristan Cohan2015-05-10
一定要 vim script? 隨便一種其他的 script language
要做這件事都很簡單吧?
Charlie avatarCharlie2015-05-12
:1,$ s/\nBB/BB/
Vanessa avatarVanessa2015-05-14
樓上 no match found 耶...
Tristan Cohan avatarTristan Cohan2015-05-15
其他的也行 可以介紹一下嗎?
Edward Lewis avatarEdward Lewis2015-05-19
我有用過 :1,$ s/^BB/CC/g 可以換掉 可是不知道怎麼把
begin那個符號刪掉 然後可以接到上一行去
David avatarDavid2015-05-23
如果B都在開頭:perl -000 -pe 's/\nB/B/sg;' file
Carol avatarCarol2015-05-24
樓上的作法會把整個內容刪掉?
Elma avatarElma2015-05-25
啊N大的可以,謝謝!
可是 還是想知道有沒有方法可以在vi內作到?
Megan avatarMegan2015-05-26
樓下有大神提供答案了,自己看一下吧
Doris avatarDoris2015-05-26
不應該說樓下,是指下一篇
Suhail Hany avatarSuhail Hany2015-05-28
有 Editor 版喔,可以去那邊問
Puput avatarPuput2015-05-30
感謝樓上提供資訊
Agatha avatarAgatha2015-06-01
tr \\n , < test.txt | sed s/,BB/BB/g | tr , \\n