作者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/cn.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