2012-01-18 12 views
0

私は以下を実行していますが、新しいファイルの上部と下部に空白の行が表示されています。SED:最初と最後の空白行が削除されていない

これらの空の行を除いて新しいファイルに出力するにはどうすればよいですか?

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

次のような効果はありません。

sed '1d' 
sed '$d' 

表現に問題があるかどうかはわかりません。あなたが快適awkを使用している場合

+1

これは、あなたが間違ってやっているかわからない、私の作品: 'sedの「/^$/D」< << $ '\ n \ none \ ntwo \ nthree \ n \ n " – SiegeX

+2

あなたの入力はどのように見えますか?私があなたのsed式で見ることができるのは、-Eではなく-eでなければならないということだけです。 –

+1

あなたの入力ファイル 'file.txt'にスペースの「空行」があるのでしょうか?あなたの正規表現として ''/^ * $/d 'はどうでしょうか? –

答えて

3

、これは動作します -

awk 'NF' INPUT_FILE > OUTPUT_FILE 
1

grep . file_name > outfileがあなたのために仕事をするだろう。

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