作者chang0206 (Eric Chang)
看板Linux
標題[問題] vi 將某些特定行移到前一行後面
時間Wed Apr 29 15:31:04 2015
描述得可能不太好
簡單說,我有一個文字檔,內容大概如下
AAAA
BB
CCCC
BBDDDDD
EEE
BBBBBBAAASSSS
我想要將開頭是 BB的每一行,接到前一行的最後,變成底下的內容
AAAABB
CCCBBDDDD
EEEBBBBBBAAASSS
可是一直找不到該怎麼下語法....
還請各位鄉民幫幫忙, thanks !
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.177.1
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1430292667.A.2AB.html
1F:推 ricky155030: 在上一行打大寫J 下一行就會併上來了 04/29 15:42
2F:→ ricky155030: 還是你是要用script做這件事? 04/29 15:42
3F:→ chang0206: 大寫J是不管下一行是啥 直接併啊,我是只要併BB開頭的 04/29 15:49
4F:→ chang0206: 然後我是要用script沒錯 04/29 15:49
5F:→ bibo9901: 一定要 vim script? 隨便一種其他的 script language 04/29 16:46
6F:→ bibo9901: 要做這件事都很簡單吧? 04/29 16:46
7F:→ carrlyea: :1,$ s/\nBB/BB/ 04/29 16:47
8F:→ chang0206: 樓上 no match found 耶... 04/29 16:59
9F:→ chang0206: 其他的也行 可以介紹一下嗎? 04/29 17:00
10F:→ chang0206: 我有用過 :1,$ s/^BB/CC/g 可以換掉 可是不知道怎麼把 04/29 17:05
11F:→ chang0206: begin那個符號刪掉 然後可以接到上一行去 04/29 17:05
12F:推 Neisseria: 如果B都在開頭:perl -000 -pe 's/\nB/B/sg;' file 04/29 17:12
13F:→ chang0206: 樓上的作法會把整個內容刪掉? 04/29 17:21
14F:→ chang0206: 啊N大的可以,謝謝! 04/29 17:22
15F:→ chang0206: 可是 還是想知道有沒有方法可以在vi內作到? 04/29 17:22
16F:→ Neisseria: 樓下有大神提供答案了,自己看一下吧 04/29 17:50
17F:→ Neisseria: 不應該說樓下,是指下一篇 04/29 17:51
18F:→ pcchou: 有 Editor 版喔,可以去那邊問 04/29 20:47
19F:→ chang0206: 感謝樓上提供資訊 04/29 21:59
20F:→ x2006: tr \\n , < test.txt | sed s/,BB/BB/g | tr , \\n 05/01 16:56