参见英文答案 >
Linux,Print all lines in a file,NOT starting with5个
我有一个文件app.log
我有一个文件app.log
Oct 06 03:51:43 test test Nov 06 15:04:53 text text text more text more text Nov 06 15:06:43 text text text Nov 06 15:07:33 more text more text Nov 06 15:14:23 test test more text more text some more text Nothing but text some extra text Nov 06 15:34:31 test test test
我如何使用11月06日开始的所有线路?
我努力了
grep -En "^[^Nov 06]" app.log
我无法获得其中有06的线条.
只需使用下面的grep命令,
grep -v '^Nov 06' file
来自grep –help,
-v,--invert-match select non-matching lines
另一个通过正则表达式破解,
grep -P '^(?!Nov 06)' file
正则表达式说明:
> ^断言我们刚开始.
>(?!Nov 06)这个负向前瞻断言在行开始后没有字符串11月06日.如果是,则匹配边界存在于每行中的第一个字符之前.
另一种基于正则表达式的解决方案,通过PCRE动词(*SKIP)(*F)
grep -P '^Nov 06(*SKIP)(*F)|^' file