0

私はcsvファイルを持っています。さまざまな列があり、これらの列の1つは日付列です。そのため、特定の日付について、csvからすべてのレコードを取得したいのですが、grepを使用できない理由はその日付です他の列にあるかもしれませんが、私はそれを望んでいません。

これまでのところ、これは私が持っているものです。

日付は次の形式です。

sed 's/\"//g' kk.csv | awk -F ',' '{print $4}'   '$4 ~ /^2012.*/'

最初にすべての "" 引用符を削除してから、区切り文字 ',' を指定してから、日付列であるファイルの 4 列目に条件を適用していますが、機能していません。本は言います。

誰かが私が間違っていることを指摘できますか?それは引用に関連する問題ですか?

4

2 に答える 2

1

awkスクリプトは 1 つしか受け付けませんが、2 つ ( {printf $4}and $4 ~ /^2012.*/) を指定しています。condition { commands }awk の構文を使用して、それらを 1 つの awk スクリプトに結合します。

sed 's/\"//g' kk.csv  | awk -F ',' '$4 ~ /^2012.*/ {print $4}'
于 2013-02-12T20:24:45.677 に答える
1

sed を使用する必要はありません。検索するには awk だけで十分です

awk -F, '$4 ~ "^\"2012"' kk.csv

これにより、「2012」で始まる 4 列目のすべての行が出力されます。

フォーマットされた出力(引用符の削除など)が必要な場合は、awkもそれを行います

于 2013-02-12T20:40:55.277 に答える