[問題] vi 將某些特定行移到前一行後面

作者: chang0206 (Eric Chang)   2015-04-29 15:31:04
描述得可能不太好
簡單說,我有一個文字檔,內容大概如下
AAAA
BB
CCCC
BBDDDDD
EEE
BBBBBBAAASSSS
我想要將開頭是 BB的每一行,接到前一行的最後,變成底下的內容
AAAABB
CCCBBDDDD
EEEBBBBBBAAASSS
可是一直找不到該怎麼下語法....
還請各位鄉民幫幫忙, thanks !
作者: ricky155030 (HighPoint( ̄□ ̄|||)a)   2015-04-29 15:42:00
在上一行打大寫J 下一行就會併上來了還是你是要用script做這件事?
作者: chang0206 (Eric Chang)   2015-04-29 15:49:00
大寫J是不管下一行是啥 直接併啊,我是只要併BB開頭的然後我是要用script沒錯
作者: bibo9901 (function(){})()   2015-04-29 16:46:00
一定要 vim script? 隨便一種其他的 script language要做這件事都很簡單吧?
作者: carrlyea   2015-04-29 16:47:00
:1,$ s/\nBB/BB/
作者: chang0206 (Eric Chang)   2015-04-29 16:59:00
樓上 no match found 耶...其他的也行 可以介紹一下嗎?我有用過 :1,$ s/^BB/CC/g 可以換掉 可是不知道怎麼把begin那個符號刪掉 然後可以接到上一行去
作者: Neisseria (Neisseria)   2015-04-29 17:12:00
如果B都在開頭:perl -000 -pe 's/\nB/B/sg;' file
作者: chang0206 (Eric Chang)   2015-04-29 17:21:00
樓上的作法會把整個內容刪掉?啊N大的可以,謝謝!可是 還是想知道有沒有方法可以在vi內作到?
作者: Neisseria (Neisseria)   2015-04-29 17:50:00
樓下有大神提供答案了,自己看一下吧不應該說樓下,是指下一篇
作者: pcchou (pcchou)   2015-04-29 20:47:00
有 Editor 版喔,可以去那邊問
作者: chang0206 (Eric Chang)   2015-04-29 21:59:00
感謝樓上提供資訊
作者: x2006 (?)   2015-05-01 16:56:00
tr \\n , < test.txt | sed s/,BB/BB/g | tr , \\n

Links booklink

Contact Us: admin [ a t ] ucptt.com