以 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 中。谢谢!