我需要使用shell脚本从一个比当前日期早1个月的巨大日志文件中找到条目。日志输入日期位于每行的第3个字段中。 这是我的示例日志文件:
0114374510,OK,10/23/2017 9:22:50 AM,0016692200,OK
0112364510,OK,10/23/2017 9:22:50 AM,0016692200,OK
0112364510,TX,10/21/2017 9:10:00 AM,0016692200,OK
0115364510,TX,10/21/2017 10:52:00 AM,0016692200,OK
0112368979,OK,7/29/2016 10:25:00 AM,0000718374,OK
0113368979,OK,7/29/2016 12:50:00 PM,0000718374,OK
0112368979,TX,9/16/2015 10:57:00 AM,0033545820,OK
谢谢!
答案 0 :(得分:0)
以下是一种解决方案,使用grep
匹配文件中的某些行,date
来操作日期。
grep -E "$(date --date='-1 month' '+%m')/[0-9]+/$(date --date='-1 month' +'%Y') <your_file>"
date --date='-1 month' '+%m'
- 将1个月减去当前日期并打印月 [0-9]+
- 正则表达式匹配任意数字(在我们的情况下为任何一天)$(date --date='-1 month' +'%Y')
- 将1个月减去当前日期并打印年 grep -E "$(date -v -1m '+%m')/[0-9]+/$(date -v -1m +'%Y') <your_file>"
date -v -1m '+%m'
- 将1个月减去当前日期并打印月 [0-9]+
- 正则表达式匹配任意数字(在我们的情况下为任何一天)date -v -1m +'%Y'
- 将1个月减去当前日期并打印年