「空の」行にスペースまたはタブが含まれている場合があります。 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 私はそれがあなたが達成しようとしているものだと信じています.