正则表达式中的非运算符

22 浏览
0 Comments

正则表达式中的非运算符

这个问题已经有了答案

使用grep进行负匹配(匹配不包含foo的行)

我有一个文件,希望用grep找出不以时间戳开头的所有行。我尝试使用以下正则表达式,但不起作用:

cat myFile | grep '^(?!\[0-9\]$).*$'

有没有其他建议或我做错了什么?

admin 更改状态以发布 2023年5月21日
0
0 Comments

试试这个:

cat myFile | grep '^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d'

假设你的时间戳是 dddd-dd-dd dd:dd:dd 格式的,但如果你的时间戳格式是其他的话,你需要更改它。

注意:除非你使用某种 cmd 链接方式,否则 grep pattern file 更简单。

顺便说一下:你使用双重否定让我不确定你是想要时间戳行还是非时间戳行。

0
0 Comments

为什么不直接使用grep-v选项进行否定呢:

grep -v "" file

假设你想grep一个shell脚本中没有注释(不是以#开头)的所有行,那么你可以使用:

grep -v "^\s*#" file.sh

0