我想把约会开始的每件事都改到约会结束。这是我现在的密码

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 variableinside作为布尔标志,在遇到$yest时(昨天的日期)进行切换。

10-07 16:54