首先约定两个概念empty lines和blank lines
- empty lines : 只有换行符,没有其他空白字符(空格,tab等)的空行。用正则表达式^$匹配。
- blank lines : 包含空白字符(空格,tab等),以换行符结尾的空行。用正则表达式^\s*$匹配。
删除empty lines
|
|
|
|
删除blank lines
|
|
|
|
|
|
- sed 命令中的d代表delete,即删除命令。
- grep 命令中的-v代表invert match,即反向匹配。
如果想直接处理原文件,不把结果重定向输出到其他文件的话,则使用sed命令的-i(in-place)选项,即:
1sed -i '/^$/d' input.txt\s匹配任何空白字符,但如考虑系统兼容性问题,用[[:space:]]代替\s。