1

これが AWK で不可能な場合は申し訳ありませんが、これは AWK で考えられることです。

大きなヘッダー セクションを持つ約 10 列の CSV ファイル (タブ区切り) があります。内容は次のようなものです。

col1 col2 col3 col4 col5 col6 col7 col8 col9 col10

col1-9 でフィルタリングする必要はありませんが、col10 を 1 行ずつ見るだけで済みます。col10の各行の内容はこんな感じ

int1/int2: int3,int4: int5: int6

私のフィルタリング条件は次if int3 + int4 >= 30のとおりです。新しい csv ファイルに出力します。それ以外の場合は除外します (出力なし)。

これは、AWK をシェル スクリプトと組み合わせて行うことは可能ですか (行ごとに読み取りますか?)。私の質問を読んでくれてありがとう

4

1 に答える 1

4

これを試して

awk -F'\t' -v OFS='\t' '{ t = $10
split(t,x,":")
split(x[2],a,",")
}(a[1]+a[2])>=30' oldcsv > newcsv

またはそれより短い:

awk -F'\t' -v OFS='\t' '{t=$10; split(t,a,/[:,]/)}(a[3]+a[2])>=30' oldcsv > newcsv

テストはしていませんが、$10 のフォーマットが修正されていれば動作するはずです。

于 2013-08-14T23:51:00.397 に答える