我正在尝试按日期解析一些 nginx 日志。我写了一个 awk oneliner 来查找一天中所有匹配的日志,例如:
awk '/05\/May\/2012/ { print $0;}' /var/log/nginx/access.log
我想要做的是使用 bash 循环几天和几个月。这是我得到的
#!/bin/bash
for h in 2012
do
for i in Apr May
do
for j in 01 02 03 04 05
do
echo "/${j}\/${i}\/${h}/"
search_string="'/${j}\/${i}\/${h}/ { print \$0;}'"
echo $search_string;
awk $search_string /var/log/nginx/access.log
echo "${h} ${i} ${j} done"
done
done
done
但是,这在 awk 行失败:
awk: 1: unexpected character '''
似乎我需要转义一些变量,但到目前为止我还没有找到解决方案。