AWK でのスクリプトの書き込み - 入力データ - 時間形式31.12.2012
. システム日付とこの日付の 2 つの日付を比較したい。最良の方法は、両方の日付を UNIX タイムスタンプに変換し、推論を行ってから条件付きで比較することだと思います。日付は、この形式でのみ UNIX タイムスタンプに変換できます2012-12-31
。この形式に変換するには、 SED 式 を記述しますsed -n -e "s_\(..\)\(.\)\(..\)\(.\)\(....\)_\5-\3-\1_p"
。そして、この式を command で変換する必要がありdate --utc --date "2012-12-31" +%s
ます。しかし、パイプは機能したくありません。
AWKで私は書いた:
#/usr/bin/awk -f
BEGIN {
FS=",";
}
{
split($3, account, "/");
gsub(/ $/, "", account[1]);
split($4, products, "\\\\n");
split($5, supports, "\\\\n");
for (i in products) {
gsub("\"", "", products[i]);
gsub("\"", "", supports[i]);
split(supports[i], timesupport, "\ > ");
"date +%s" | getline dateVal;
print timesupport[1] | sed -n -e "s_\(..\)\(.\)\(..\)\(.\)\(....\)_\5-\3-\1_p" | getline timeVal1 | date --utc --date "timeVal1" +%s | getline timeVal;
x=dateVal - timeVal;
if (supports[i] !~ /n\\\\a*/ && supports[i] !~ /n\/a*/ && $2 !~ /\NULL/)
print $1","$2","timesupport[1]","account[1]"\","products[i]"\","$6;
}
}
メインスレッドは投稿 12634588 でした。ありがとう!