SED:未删除第一个和最后一个空行

时间:2012-01-18 06:13:02

标签: bash shell unix sed newline

我正在运行以下内容,但它在新文件的顶部和底部以空行返回。

如何在没有这些空行的情况下输出到新文件?

input | sed -E '/^$/d' > file.txt

以下内容也没有效果。

sed '1d'  
sed '$d'

我不确定表达式存在问题的位置。

3 个答案:

答案 0 :(得分:3)

如果您习惯使用awk,那么这将有效 -

awk 'NF' INPUT_FILE > OUTPUT_FILE

答案 1 :(得分:1)

grep . file_name > outfile会为你完成这项工作。

答案 2 :(得分:0)

这可能对您有用:

 echo -e " \t\r\nsomething\n \t \r\n" | sed '/^\s*$/d' | cat -n
 1  something

N.B。这将删除所有空白行,以保留文件使用正文中的空行:

echo -e " \t\r\n   something\n \nsomething else \n \t \r\n" | 
sed ':a;$!{N;ba};s/^\(\s*\n\)*\|\(\s*\n\)*$//g'
   something

something else