我想把约会开始的每件事都改到约会结束。这是我现在的密码
for z in *.log; do cat /test/data/$z | grep "`date --date="yesterday" +%m\/\%d\/\%y`" > /data/demo.log; done
我的代码有一个问题,例如它不会grep新行
原始数据
> [12/28/13 17:57:15.702]: start
> test_miss
> [12/28/13 17:57:15.702]: end
> [12/29/13 17:57:15.702]: new day
GREP之后
> [12/28/13 17:57:15.702]: start
> [12/28/13 17:57:15.702]: end
期望输出
> [12/28/13 17:57:15.702]: start
> test_miss
> [12/28/13 17:57:15.702]: end
从约会开始到约会结束我怎么能得到一切,谢谢
最佳答案
使用gawk如
yest=$(date --date="yesterday" +%m\/\%d\/\%y`")
for z in *.log; do
awk "/$yest/{inside= !inside;print;next;} {if (inside) print;}" $z
done
我将using a variable
inside
作为布尔标志,在遇到$yest
时(昨天的日期)进行切换。