[问题] 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