我有一个文件喜欢有连续的空行(更清楚地说,只有空白行)。我想用一个来代替所有的。
我更愿意sed
(恕我直言,这个任务是awk
微不足道的)。
答案1
要压缩连续的空行(零字符行),您可以使用N;P;D cycle
:
sed '$!N;/^\n$/!P;D' infile
要压缩连续的空白行,只需更改正则表达式以考虑可能的空白:
sed '$!N;/^[[:blank:]]*\n[[:blank:]]*$/!P;D' infile
答案2
如果你有GNU sed
可用(并且它不会与您的脚本冲突),您可以使用-z
零分隔行的标志,然后使用更简单的正则表达式,例如:
sed -z 's/\n[\n ]*/\n/g' infile
请注意,这-z
是不是POSIX。