Shell 使用awk命令获取数据

Shell 使用awk命令获取数据,shell,unix,awk,Shell,Unix,Awk,我有一个日志文件,它每秒钟都在更新。我想获取最后10分钟的数据。我试过这样的awk: awk \ -v time1="$(date +"%F %R" --date=@$(expr `date +%s` - 600))" \ -v time2="$(date "+%F %R")" \ '$0 ~ time1, $0 ~ time2' \ filename 但它不起作用。有人能帮忙吗?给出文件的示例数据,清楚地提到存储时间的列和预期输出。空格前的所有反斜杠是什么?170605 01405005 x

我有一个日志文件,它每秒钟都在更新。我想获取最后10分钟的数据。我试过这样的awk:

awk \ -v time1="$(date +"%F %R" --date=@$(expr `date +%s` - 600))" \
-v time2="$(date "+%F %R")" \
'$0 ~ time1, $0 ~ time2' \ filename

但它不起作用。有人能帮忙吗?

给出文件的示例数据,清楚地提到存储时间的列和预期输出。空格前的所有反斜杠是什么?170605 01405005 xxxxx DS1O XXXXXXXXX From(、XXXX、xxxxx)XXXX01:WEB写入响应00000000000000 170605 01410524 xxxx DS1O xxxxxxxx From(,,xxxx,XXXXX)XXXX01:WEB写入响应00000000 00000000 170605 0141207 XXXXX DS1O xxxxxxxx From(,,xxxx,XXXXX)XXXX01:WEB写入响应00000000 00000000 01:41:52错误代码:203,pc=354,call=1,seg=0^@170605 01595005 xxxx DS1O XXXX01 From(,,xxxx)最终170605 01595012 xxxx DS1O XXXX01 From(,,xxxx,xxxx)xxxxxx01:WEB写入响应00000000000000000000我的要求是每10分钟从日志文件中提取带有错误代码的行,其中有错误的行没有时间戳。所以我不能使用grep或sed。我可以用awk。如何在shell脚本中编写此脚本?您必须回答问题,而不是添加注释。因为所有的空白都消失了,所以不可能理解输入的格式。