正则表达式的问题,写不出来,求大神指教啊!
vim吧
全部回复
仅看楼主
level 13
神木月樱 楼主
各位大神,有一个类似如下的八千多行的log,我需要将“每个空行及其下面一行”批量删除,这正则表达式该如何写啊!
或者倒过来,删除每个空行及其上面一行,也行……
求教求教!不是想当伸手党,而是已写了三个钟头了,愣没试出来……
这log唯一的特征是每行末尾三个字符是相同的0……
asdfgaadd000
sdafd000
gadfadgabdd000
hgabsdd000
savaabd000
twaaacdsdd000
wvadd000
gaa000
haadkyh000
ykadfjfgh000
dgapkjvf000
……
在此先谢谢各位大神啦!!
2017年12月18日 15点12分 1
level 13
神木月樱 楼主
我去 ,研究了一整天,我自己找到解决方法了,发在这里希望能帮到有需要的其他朋友,结果居然被删贴了??这是纯技术贴呀?![疑问]
2017年12月19日 04点12分 3
2 楼被删了,可能是误删吧
2017年12月20日 18点12分
回复
PDcfm
:已向百度贴吧申述过,说我自己回复自己,而且是纯技术贴,没有违规,但贴吧回复,就是违规了,我也不知道违规在哪儿?我就回复了那个表达式,可能是斜线太多,贴吧以为是垃圾广告吧……无语了。
2017年12月21日 02点12分
level 13
[滑稽]
2017年12月23日 00点12分 4
level 2
我的想法是用bash脚本,使用awk找出空行的行号并储存起来,在用sed删除指定行的空行及其上或下一行
2017年12月31日 02点12分 5
level 9
删空行不是很容易吗?
:%s/^\n//g
2017年12月31日 08点12分 6
还要删除上一行或下一行
2018年01月01日 03点01分
level 13
神木月樱 楼主
我第二楼就已经发了我自己找到的结果,但被删贴了。。算了,发个图,如下即可:
简单解释一下:查找两个\n就是找两个分段提行符,再查找/.是任意字符(也就是下一行的内容),\+表示任意字符的个数为任意(也就是下行的字数不定,可能是任意个),再接一个\n表示这行的行尾。替换为一个\n,即可。。
-----------
我是第二天在二楼就发了这个结果贴,但不知为何被删贴了……
2018年01月02日 01点01分 7
补充说明下,我这是在linux下,如果在win下的话,文本文件末尾不一定是两个\n,这串正则表达式就未必能正确运行。。
2018年01月02日 02点01分
1