shell – 检查一行是否以grep 的特定字符串开头

前端之家收集整理的这篇文章主要介绍了shell – 检查一行是否以grep 的特定字符串开头前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Linux,Print all lines in a file,NOT starting with5个
我有一个文件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

猜你在找的Bash相关文章