3

CSV ファイルである大きなデータセットがあり、既にかなりクリーンアップしています。ただし、数値ではない列があり、それらの行を削除したい場合があります。

これまでのところ、私はこのようなものがうまくいくと思っていました。解決策はおそらく簡単だと思います。このようなことができるかどうかさえわかりません。これはCSVファイルなので、コンマで区切られていることをawkに伝えようとしました。また、列 1 の適切な値の例は次のとおりです: 323870133825187840

awk '/,/$1 != numeric'

これについて何か提案はありますか。私は当初、[0-9] などのワンライナーを実行することを考えていました。そこにいる誰かにとって、これはおそらく子供の遊びのようなものです:)

4

3 に答える 3

1

これを試して:

awk -F, '$1+0 != $1{next}1' csvFile
于 2013-08-03T09:17:15.480 に答える
1

簡単にgrepできます:

grep -P '^[+-]?\d*(\.\d+)?(?<=.),' file

=/-オプションの符号付きの最初の列に小数/整数が見つかった場合、これは行を返します。

たとえば、次の数値は列 1 で一致します。

6.72
1235.3
72
.66
2.8
+3.5
-5.9

PS: 1 列目の空の列の値は一致しません。

于 2013-08-03T05:32:37.477 に答える