使用awk/sed删除双行新行
嘿大家。 我有一个文件充满了数据,每行包含类似于“755545; 45634; 1244”的东西。有时在某处可能会出现未知数量的额外新行,这是我不想要的。 实施例:使用awk/sed删除双行新行
256163;16816;1651
16156;165165;1165
15153;135135;15351
15153;1351;8
165;15313;153513
254;45;45
希望的输出:
256163;16816;1651
16156;165165;1165
15153;135135;15351
15153;1351;8
165;15313;153513
254;45;45
这能容易地与AWK/SED效用在UNIX中做了什么?
从@Luixv答案是正确的,如果有对 “空” 行没有空格。 如果空白是目前使用这个代替:
sed '/^[ \t]*$/d'
多数民众赞成在括号内的\ T,即[空格\ T]
之前的空间。如果这不起作用,你可能有一个问题换行。做一个:
$ file test_file
test_file: ISO-8859 text, with CRLF, LF line terminators
如果得到上面的输出,它使用的文件转换为UNIX:如果你没有安装它,安装它
$ dos2unix test_file
sed -nre "s/([^$])/\1/p" input
与ssed
解决super_sed。
ssed -R -e '/(^$|\s)/ d' yourFile
或
cat yourFile| ssed -R -e '/(^$|\s)/ d'
快乐seding
PS:如果你有标签或\r \t \n
因此在ReqExp的\s
甚至会工作。
\r = Return Carriage
\n = New Line
\t = Tab
sed -n 's/^[ ,\t]*$/!p' filename
由于unix考虑空间和制表符为不同的字符,我提出了两个问题我们应该提及 – Sabarish 2012-09-26 13:14:30
(修正了制表符转义,转义使用了后退,这里的前进空间可能不是我想要的,我猜这是一个错字。 – Evi1M4chine 2016-01-06 19:20:33
是是是!大!究竟。之后充分工作,谢谢! – tsusanka 2010-11-17 11:54:19
如果您使用来自Windows的文件,请注意。如果是这样,您可能需要匹配^ M(多余的窗口结束符)以及空格和制表符。 – qwerty9967 2012-07-01 02:07:18