何百万ものレコードを含む CSV ファイルがあります。フィールドの 1 つ (例: $2) には日付が含まれています。先週からの日付が必要です。
AWK を使用して、現在の日付を過去 7 日間のランダムな日付に置き換えることを考えました。このために、インデックスが 1..7の配列を作成したいと思いました。その値は、過去 7 日間の日付になります (例: 2013-10-08、2013-10-07...)。
特定の日付から日付を計算できる関数はありますか? または、仕事をすることができるいくつかのコード?
ファイルのタイムスタンプは「yyyy-mm-dd hh:mm:ss」です。
更新 - 回答
これがついに私のニーズに合ったものです:
BEGIN { srand() }
{
split($2, a, "-")
t = mktime(a[1] " " a[2] " " substr(a[3], 1, 2) " 00 00 00")
$2 = strftime("%Y-%m-%d %H:%M:%S", t - int(7*rand()+1) * 3600 * 24 + int(3600*24*rand()))
}
1