空白行を削除するためにテキストファイルをフィルタリングする良い方法は何ですか?

空白行を削除するためにテキストファイルをフィルタリングする良い方法は何ですか?

次のように、空行がたくさん含まれている.csvファイル(Macの場合)があります。

"1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum 

lorem ipsum ","2","3","4"
"1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum 

lorem ipsum ","2","3","4"

私はそれを次のように変換したいと思います:

"1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ","2","3","4"
"1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum  lorem ipsum ","2","3","4"

ライナーがあるはずですが、awkやsedについてはわかりません。どんなアドバイスもありがとうございました!

ベストアンサー1

grepの(逆一致)パターンを使用して-vこれを行うことができます。

grep -v '^$' old-file.csv > new-file.csv

シェルのリダイレクトが機能するため、これらのファイルは異なるファイルでなければなりません。入力ファイルを読み込む前に、出力ファイルが開いて空になります。 moreutils(Mac OS Xではデフォルトではない)がある場合は、sponge次の方法を使用してこの問題を解決できます。

grep -v '^$' file.csv | sponge file.csv

しかし、もちろん何かが間違っていると元に戻すのは難しいです。

「空行」に実際に空白を含めることができる場合(そのように聞こえますが)、次のものを使用できます。

egrep -v '^[[:space:]]*$' old-file.csv > new-file.csv

これにより、空白行だけでなく空白のみを含む行も無視されます。もちろんsponge同じ方法で変換することもできます。

おすすめ記事