「空の」行にスペースまたはタブが含まれている場合があります。 sed で POSIX クラスを使用する 空白のみを含むすべての行を削除するには:
sed '/^[[:space:]]*$/d'
ERE を使用する短いバージョン (gnu sed など):
sed -r '/^\s*$/d'
(sed はしないことに注意してください PCRE をサポートします。)
awk がありません 解決策:
awk 'NF' file
どちらが返されますか:
xxxxxx
yyyyyy
zzzzzz
これはどのように作動しますか? NF以降 「フィールド数」を表し、空の行にはフィールドが 0 であるため、awk は 0 を False と評価し、行は出力されません。ただし、少なくとも 1 つのフィールドがある場合、評価は True になり、awk になります。 デフォルトのアクションを実行します:現在の行を印刷します。
シード
'/^[[:space:]]*$/d''/^\s*$/d''/^$/d'-n '/^\s*$/!p'
grep
.-v '^$'-v '^\s*$'-v '^[[:space:]]*$'
わかりました
/./'NF''length''/^[ \t]*$/ {next;} {print}''!/^[ \t]*$/'
sed '/^$/d' ファイルをその場で変更することを期待していますか?その場合は、-i を使用する必要があります
おそらくそれらの行は空ではないので、その場合は、この質問を見てください Remove empty lines from txtfiles, remove space from start and end of line 私はそれがあなたが達成しようとしているものだと信じています.