Perl / Shellで区切り文字ベースの行を削除する方法は?

Perl / Shellで区切り文字ベースの行を削除する方法は?

誰でも区切り記号(カンマ)に基づいてファイルの行を削除するのに役立ちますか?行に列数が少ないか、誤ったレコードが含まれている場合は削除する必要があります。

Input File:

a,b,c,d
a,b,d,f
c,d
a,v,b,h
d,e,v,n

上記のファイルで区切り文字が4未満の場合は、その行をファイルから削除する必要があります。

Output File :

a,b,c,d
a,b,d,f
a,v,b,h
d,e,v,n

以下のコマンドは、1行の区切り記号の数を提供します。 4と同じでない場合はどうすれば削除できますか?

egrep -iv '"' file.csv | awk -F',' '{print NF}' 

ありがとうございます。

ベストアンサー1

別のPerl:3つのカンマがある場合は、1行を印刷します。

perl -i.bak -ne 'print if tr/,/,/==3' file

このtr演算子は、翻訳された文字数を返します。

おすすめ記事