sedを介してCSVから空のフィールドを持つ行を削除する

sedを介してCSVから空のフィールドを持つ行を削除する

2つの列を持つCSVファイルがあります。最初はID(int)、2番目はテキストです。すべての行にはID列があります。 2番目の列が空の(長さ0または空白)ファイルを削除したいと思います。

頑張った

sed -i '/^[0-9]+,\s*$/d' file.csv

しかし、うまくいきません。

ベストアンサー1

拡張正規表現をエスケープ、+使用、または追加する\{1,\}必要があります。-E

sed -i '/^[0-9]\+,\s*$/d' file.csv
sed -i '/^[0-9]\{1,\},\s*$/d' file.csv
sed -Ei '/^[0-9]+,\s*$/d' file.csv

または以下を使用してくださいgrep

grep -v '^[0-9]\+, *$' file.csv

しかし、私は適切なcsvパーサーを好みます。

csvgrep -S -c2 -r '.' file.csv

おすすめ記事