日期:2014-05-16  浏览次数:20828 次

linux下去掉空行的几种办法
[size=medium][size=small]1,最常用的就是sed了
   

sed /^\s*$/d file  (passed not good)
或者
sed '/^$/d'(passed not good)



2, grep的方法
  
grep -v ^$ file    (passed)
或者
grep . file        (只能去掉纯粹的空行,not very good)

3, awk的
   
awk NF file  (passed,good)
awk '!/^$/' file   (passed, not good)

性能:
grep > awk NF > sed >awd '!/^$/'

以下为一些测试:
测试用例:
2,500,000行文件大小,每行约450个字节

[/size]1.         grep . file        > file_noemptyline
用时:        0m2.275s

2.        sed  /^$/d  file > file_noemptyline
用时:        0m37.540s       

3.        awk NF file > file_noemptyline
用时:        0m6.770s

4.        awk '!/^$/' file > file_noemptyline
用时:        0m55.727s

5.    awk '!/^[:blank:]*$/' file >file_noemptyline
[/size]