GNU/Linux >> Linux の 問題 >  >> Linux

sed を使用して空行を削除する

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


Linux
  1. AwkまたはSedを使用して、8未満の文の単語または数字を置き換えますか?

  2. Sedを使用してテキストファイルから複数のランダム行を削除する方法は?

  3. Mcでワードラップを使用していますか?

  1. シェルコマンドを使用してASCIIファイルの最初のN行を削除するにはどうすればよいですか?

  2. grep でテキスト ファイルの空行を削除する

  3. sed 行を結合する

  1. sedを使用して、ファイル内の行の範囲内のテキストを検索して置換します

  2. grep と awk の使用

  3. awkを使用してファイルをインプレースで変更するには? (sed -i と同様)