4

私はこのようなCSVファイルを持っています:

text,0
more text,2
some more text,100

2番目の列のみを含む行を削除する必要があり0ます。たとえば、上記の出力は次のようになります。

more text,2
some more text,100

完全に一致するCSVからすべての行を削除するにはどうすればよいですか?

4

4 に答える 4

5

それが最後のフィールドである場合、grep はトリックを実行します。

grep -v ',0$'

そうでない場合、およびフィールドに が含まれていない場合は,、awk を使用します。

awk -F , '{if ($2!='0') print}'

さらに複雑な場合は、CSV パーサーで python または ruby​​ を使用します。

于 2012-04-18T11:17:47.937 に答える
3

シンプルなsedソリューション...

sed /,0$/d
于 2012-04-18T14:28:34.917 に答える
2

ファイルのインライン編集が必要な場合は、次を試すことができます。インライン編集を試みる前に、必ずファイルをバックアップしてください。(一致を含む行を削除します)

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
于 2012-04-18T12:00:22.570 に答える
2

これはあなたのために働くかもしれません:

awk -F, '$2' file
于 2012-04-18T12:59:03.137 に答える