这个 egrep 命令有什么作用?

k3n*_*k3n 1 grep regular-expression

这个egrep命令有什么作用?

egrep '[^A-M][0-9]+' /etc/passwd
Run Code Online (Sandbox Code Playgroud)

到目前为止,我认为它会搜索/etc/passwd以 AM 开头并包含数字 0-9 的任何文件。那正确吗?

lar*_*sks 6

^在表达式的开头表示“行的开头”。但是,^括号内的表达式匹配不在该表达式中的所有内容。因此,例如,虽然[abcd]匹配字母 a、b、c 或 d,但表达式[^abcd]匹配除这些字母之外的所有内容。

所以你得到的表达式匹配“任何不是 AM,后跟 1 个或多个数字”。

以下几行都将匹配该表达式:

mmmmmz09123
00
this is a very long line that includes the number 1.
Run Code Online (Sandbox Code Playgroud)

因为它们都包含一个数字,前面有一个不在 AM 范围内的东西。