ファイルから空の行をすべて削除したい。行にスペースまたはタブが含まれている場合でも、削除する必要があります。
ファイルから空の行をすべて削除したい。行にスペースまたはタブが含まれている場合でも、削除する必要があります。
回答:
ただ、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:]]、空白以外の任意の文字を意味します。
[^[:blank:]]$空白以外で終わる行にのみ一致します。私たちは、非空白含む行たいどこでも
grep -E '\S'動作しない場合はありますか?
どうですか:
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をご覧ください。
[[:space:]]タブが含まれます。そうでなければ、タブの後にスペースが続くと正規表現は失敗します。
wctype(3)isalpha(3)
sedコマンドを使用して空白行を削除できます。
sed '/^$/d' in > out
このコマンドは、ファイル「in」からすべての空行を削除します
次のコマンドを使用します。
grep '\S' FILE
スペースやタブを含むすべての行が削除されます。
それ以外の場合、スペース/タブのある行を含まない削除は、次を使用します:
grep . FILE
例えば:
$ printf "line1\n\nline2\n \nline3\n" > FILE
$ cat -v FILE
line1
line2
line3
$ grep '\S' FILE
line1
line2
line3
$ grep . FILE
line1
line2
line3
こちらもご覧ください:
sed:sedを使用して空の行を削除しますawk:awkを使用して空白行を削除します
$行末も必要ですか?