私はこのようなCSVファイルを持っています:
text,0
more text,2
some more text,100
2番目の列のみを含む行を削除する必要があり0
ます。たとえば、上記の出力は次のようになります。
more text,2
some more text,100
完全に一致するCSVからすべての行を削除するにはどうすればよいですか?
それが最後のフィールドである場合、grep はトリックを実行します。
grep -v ',0$'
そうでない場合、およびフィールドに が含まれていない場合は,
、awk を使用します。
awk -F , '{if ($2!='0') print}'
さらに複雑な場合は、CSV パーサーで python または ruby を使用します。
シンプルなsedソリューション...
sed /,0$/d
ファイルのインライン編集が必要な場合は、次を試すことができます。インライン編集を試みる前に、必ずファイルをバックアップしてください。(一致を含む行を削除します)
sed -i "s/.*match.*//g" /yourfile.csv
ファイル内の空白行を削除するには。(インライン編集を試みる前に、必ずファイルをバックアップしてください。)
sed -i "/^$/d" /yourfile.csv
OS Xの場合は、次のことを試すことができます (インライン編集を試みる前に、必ずファイルをバックアップしてください)。
sed -i '' "s/.*match.*//g" /yourfile.csv
sed -i '' "/^$/d" /yourfile.csv
これはあなたのために働くかもしれません:
awk -F, '$2' file