ファイルから空白行(タブやスペースを含む)を削除するには?

ファイルから空白行(タブやスペースを含む)を削除するには?

ファイルから空の行をすべて削除したいです。行にスペースやタブが含まれていても削除する必要があります。

答え1

解決策は次のとおりですawk

$ awk NF file

の場合は、awkNFでない行にのみ設定してください。この条件が一致する場合、awkデフォルトのジョブはprint行全体を印刷することです。

答え2

空白でない場合にのみgrep機能します。

grep '[^[:blank:]]' < file.in > file.out

[:blank:]、文字範囲([...])ではPOSIX文字クラスと呼ばれます。[:alpha:][:digit:]...[:blank:]水平スペース文字のマッチング(POSIXロケールではスペースとタブですが、他のロケールにはUTF8ロケール内のすべてのUnicode水平スペース文字のように多くの場合があります)があり、水平[[:space:]]および垂直スペース文字と一致します。 ([:blank:]縦タップ、給紙などと同じ)

grep '[:blank:]'

:b、、、、lまたはa文字を含むn行が返されますk。文字クラスは内でのみ認識され、[...]コレクションは^内で無効になります。[...]したがって、[^[:blank:]]空白文字を除くすべての文字を意味します。

答え3

どうですか?

sed -e 's/^[[:blank:]]*$//' source_file > newfile

または

sed -e '/^[[:blank:]]*$/d' source_file > newfile

つまり

各行について、次を置き換えます。

  • 起動すると(" ^")
  • スペースまたはタブ(" [[:blank:]]")を0回以上使用する(" *")
  • その後、行末( " $")

::blank:: およびその他の特殊文字の詳細については、次のサイトをご覧ください。http://www.zytrax.com/tech/web/regex.htm#special

答え4

sed次のコマンドを使用して空白行を削除できます。

sed '/^$/d' in > out

このコマンドは、「in」ファイルの空白行をすべて削除します。

関連情報