2

コマンドライン引数として渡す特定のデータを含むすべてのレコードを検索する必要があります。

awk式は次のようになります(日付はこの形式です: '02/08/2013')

cat records.txt | awk -F'、''$ 4〜 / 02/08/2013 / {print $ 1 $ 2}'

ここで、4番目の列は日付列です。

私がやりたいのは、最初の引数として日付を指定し、それを比較することです。

私はこれを試しましたが、動作していません。

cat records.txt | awk -F'、' -v awkvar = "$ 1"'$ 4〜 / ^ "awkvar / {print $ 1 $ 2}'

ここで、日付列は「quote」で始まるので、指定された日付の「+awkvar」で始まるレコードを探すように指示しています。

誰かがこれを手伝ってくれますか?

編集:

awk -F'、' -v var1 = "$ 1"'$ 4〜 / ^ "2013 / {print $ 1 $ 2}' {レコードを2013と直接比較しているため、これは機能しています}

私がこれをするとき

awk -F'、' -v var1 = "$ 1"'$ 4〜 / ^ "var1 / {print $ 1 $ 2}'、何も返さない、違いは何ですか。

4

1 に答える 1

4

に変数を渡すにawkは、を使用します

awk -v awkvar=$value '{print awkvar}'

そうは言っても、パイプする必要はありませんcat | awk(猫の無駄な使用)ので、最終的に:

awk -F, -v awkvar="$1" '$4 ~ "^\""awkvar {print $1 $2}' records.txt
于 2013-02-14T10:15:43.883 に答える