我正在使用命令从日志文件中提取日志,并且当我通过终端
运行命令时命令正常工作awk '/Aug 19/||/Aug 21/{a++}a; a==4{a=0}' daily_usage_report.log
这个命令给我8月19日到8月21日的数据。日志文件如下所示 -
Aug 19
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Aug 19
Aug 20
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Aug 20
Aug 21
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Aug 21
但是当我尝试在shell脚本中使用相同的命令并希望将shell变量传递给awk时,它不提供任何输出。我写的shell脚本是 -
#!/usr/bin/bash
echo "Please enter the Full Date [eg- Aug 2 or Aug 20]"
read -p 'From Date: ' d1var
read -p 'Till Date: ' d2var
awk -v var="$d1var" -v vari="$d2var" '/"$var"/||/"$vari" /{a++}a; a==4{a=0}' daily_usage_report.log
exit
运行此脚本不会为我提供任何输出。
请帮助纠正我的错误。
答案 0 :(得分:1)
awk变量是一个与shell变量不同的野兽。
而是尝试:
awk -v var="$d1var" -v vari="$d2var" '/var/||/vari /{a++}a; a==4{a=0}' daily_usage_report.log