无法从shell脚本中的awk命令获取任何输出

时间:2014-07-08 17:45:20

标签: linux shell awk

我正在尝试编写一个shell脚本来从下面的示例日志中获取某些数据..

以下是日志示例:

2014-07-08 16:08:25,684:        |ABC_130|1|10123ffffff2|P|489440201
2014-07-08 17:08:25,684:        |ABC_130|1|aaaaaxxxxaab|P|489440201
2014-07-08 19:08:25,684:        |ABC_130|1|aaaaababbaab|P|489440201

下面是我遇到问题的脚本的一部分,我面临的问题是awk命令没有给出任何输出。

#!/bin/sh

DATE_HOUR="`date -d '1 hour ago' "+%Y-%m-%d %H"`"

awk -F ":" '{if ($1='"$DATE_HOUR"') print $0}' log.txt 

1 个答案:

答案 0 :(得分:3)

不要在awk中使用类似的shell变量。使用-v name=val

awk -F ":" -v dt="$DATE_HOUR" '$1==dt' log.txt 

btw我将你的awk命令减少到'$1==dt',因为print $0默认操作,并且条件可以移出大括号。