我有一个.csv文件,其中包含许多寄存器,需要按某些值进行过滤:
我在过滤文本字段时没有任何问题,但在日期字段方面遇到了麻烦。
我使用变量过滤日期:
yesterday=$(date +%d"/"%m"/"%Y" 00:00:00" --date='-1 day')
当我尝试用awk行获取寄存器时,当文件中有300个以上的寄存器时,它不返回任何值。如果不使用字段51进行过滤,则会得到一个包含很多寄存器的文件。有想法吗?
这是AWK行:
awk -F "%" '{if($10=="INFO") if($49=="REVIEW") if($51==$yesterday) {print $5 ";" $6}}' file.csv > procesedFile.csv
我也尝试过此方法,但没有成功:
if($51=="$yesterday")
如果我直接过滤写日期,它将正常工作:
awk -F "%" '{if($10=="INFO") if($49=="REVIEW") if($51=="17/06/2019 00:00:00") {print $5 ";" $6}}' file.csv > procesedFile.csv
打印$ yesterday变量将返回预期值“ 17/06/2019 00:00:00”