如何删除仅含空格或制表符的行,同时保留空行?
仅删除含空格/制表符的行、保留空行的解决方案
需求说明
需要处理文本文件,删除仅由空格或制表符组成的行,但保留完全空的行(无任何字符,包括空格、制表符)。
示例输入:
Dalot # Really empty line Eriksen # Line containing space Malacia # Line containing tab # Really empty line Varane
期望输出:
Dalot # Really empty line Eriksen Malacia # Really empty line Varane
具体实现方法
方法1:使用sed命令
sed '/^[[:blank:]]\+$/d' input.txt > output.txt
解释:^[[:blank:]]\+$匹配仅由一个或多个空格/制表符组成的行,d表示删除匹配到的行。
方法2:使用awk命令
awk '!/^[[:blank:]]+$/' input.txt > output.txt
解释:!/^[[:blank:]]+$表示不匹配仅含空格/制表符的行,只输出不匹配的行,也就是保留空行和其他有效行。
方法3:使用grep命令
grep -v '^[[:blank:]]\+$' input.txt > output.txt
解释:-v表示反向匹配,即排除匹配^[[:blank:]]\+$的行,保留其余行。
以上命令均可精准区分完全空行和仅含空格/制表符的行,只删除目标行。
内容的提问来源于stack exchange,提问作者Liso
相关产品推荐
相关产品推荐

