linux,清除文本中的空白行

  • Post author:
  • Post category:linux


#今天需要批量下载文件的时间,发现文件与文件之间存在空白行,所有记录一下删除空白行的方法

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字符集

在这里插入图片描述



版权声明:本文为qq_50247813原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。