我正在尝试编写一个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
不要在awk中使用这样的shell变量。 使用-v name=val
:
awk -F ":" -v dt="$DATE_HOUR" '$1==dt' log.txt
顺便说一句,我减少了你的awk命令'$1==dt'
因为print $0
是默认的动作 ,如果条件可以移出花括号。