Linuxでファイルから空白行を削除する方法

Linuxでファイルから空白行を削除する方法

私のファイルには、次のスペースを含む出力があります。

daily/A3D05180000052121001 30698

daily/A3D05180000052200001 30698

daily/A3D05180000052203001 30698

空行を削除する必要があります。出力は次のようになります。

daily/A3D05180000052121001 30698
daily/A3D05180000052200001 30698
daily/A3D05180000052203001 30698

使ってみようsed

sed -i -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}' "$FILESIZE3"

しかし、うまくいきませんでした。誰でもこの問題を解決するのに役立ちますか?

ベストアンサー1

sed '/^[[:space:]]*$/d' file >file.modified

fileこれにより、完全に空白または空白のような文字のみを含む行が削除されます。この場合、スペースに似た文字には、DOSテキストファイル(Unixツールで処理するとき)の各行の末尾にあるキャリッジリターン、タブ、およびスペースが含まれます。結果データが記録されますfile.modified

リダイレクトを削除して-i代わりにオプションを使用すると、新しいファイルを作成する代わりに「内部」変更が行われますが、fileこのオプションは移植できず、他のUnixシステムで異なる動作をすることができます(sed -i(所定の位置で編集)を使用して移植性を達成するには?)。

おすすめ記事