原文本格式如下:
type1 aaa
a. 任意字符fefefel
b. 任意字符dfei2fe
c. 任意字符efefo3
type2 bbb
a. 任意字符dsfeiie
b. 任意字符eie3dfd8
c. 任意字符8239sdfe
type3 ccc
a. 任意字符feif3
b. 任意字符sefles
c. 任意字符eefwe55
希望替换为:
type1 aaa
a. type1 任意字符fefefel
b. type1 任意字符dfei2fe
c. type1 任意字符efefo3
type2 bbb
a. type2 任意字符dsfeiie
b. type2 任意字符eie3dfd8
c. type2 任意字符8239sdfe
type3 ccc
a. type3 任意字符feif3
b. type3 任意字符sefles
c. type3 任意字符eefwe55
请问在vim中可以实现吗?或者可以用其它软件或C语言实现吗?
补充一下:上面的aaa,bbb,ccc是文本内容,与序号a,b,c无关。
谢谢!我也用emeditor。问题解决了,是我的emeditor版本实在太低了。
追答我看到了你之前的追问:(很抱歉没空及时答复)
上面a.、b.、c.各行之间还有多个无关行需要删除,请问如何匹配这些无关行?我用(^.+\n){1,9}这样的格式想匹配1到9行,但是不行啊,是不是{1,9}这种表达方式不对啊?
很高兴你已解决。
追问不答也是浪费,希望对别人还有点用:
EmEditor 界面搜索 的“匹配多行”要开启相关设置项(如图):
▲如需帮助,可再联系。
表达式可以用:
^([\s\S]*?\n){1,9}
或
^(.*?\n){1,9}
▲注意要用?约束。
▲我用*而不是+,把 一个空行 作为 一行 处理。
也可用EmEditor的宏来处理,用脚本语言的“多行”属性,可以不必改动界面选项。
开启“匹配多行”可能带来一定风险,慎用。
用VIM应该是LINUX系统吧,将上面的命令原样复制到命令行,文本文件名用实际的文件名替代
糟糕!我没表达清楚,我是用gvim,请问这些命令怎么输入?
追答我没说在gvim中输入这些,在终端也就是linux shell输入这些命令
/^.\./!{如果嫌在终端输入麻烦的话,将上面的代码保存为文件放在与文本文件同一个目录,文件名为sedscr
在终端切换到文件所在目录,输入命令
sed -f sedscr -i 文本文件名
我是windows下的gvim,请问应该怎么输入啊?