#今天需要批量下载文件的时间,发现文件与文件之间存在空白行,所有记录一下删除空白行的方法
1、 egrep -v "^[[:blank:]]*$" filename >newfile
egrep 就等于 grep -E 代表使用扩展正则表达式
-v "^[[:blank:]]*$" -v 反选,除了"^[[:blank:]]*$" 这里的内容全部展示出来
"^[[:blank:]]*$" [[:blank:]] 是Posix字符集代表空格与[tab],^匹配什么开头,* 匹配0次或者多次 $ 匹配什么结尾
"^[[:blank:]]*$" 连起来就是匹配空格开头, 0 到 n 个空格结尾
egrep -v "^[[:blank:]]*$" filename 展示的内容就是,排除一整行都是空格的的内容
2、 egrep -v "^[[:space:]]*$" filename > newfile
[[:space:]] 是Posix字符集代表空白符
egrep -v "^[[:space:]]*$" filename 展示的内容就是,排除一整行都是空白符的内容
3、 awk '!/^[[:blank:]]*$/{print $0}' filename >newfile
'!/^[[:blank:]]*$/ ' ^[[:blank:]]*$ 空格开头n个空格结尾,加一个! ,就是展示不以一个空格开头n个空格结尾的内容
{print $0} 打印完整的输入记录
4、 awk '!/^[[:space:]]*$/{print $0} ' filename >newfile
'!/^[[:space:]]*$/ ' ^[[:space:]]*$ 空白符开头n个空白符结尾,加一个! ,就是展示不以一个空白符开头n个空白符结尾的内容
{print $0} 打印完整的输入记录
5、 sed '/^[[:blank:]]*$/d' filename
^[[:blank:]]*$ 把找到的已空格开头,n个空格结尾的删除掉 ,d 代表删除
6、 sed '/^[[:space:]]*$/d' filename^[[:space:]]*$/d 把找到的已空白符开头,n个空白符结尾的删除掉 ,d 代表删除
#介绍一些常用的Posix字符集