Ubuntu 中 grep 以“1”开头的行

Ubuntu 中 grep 以“1”开头的行

我尝试使用搜索以“1”开头的行

ls -1 | grep ^1*

但它返回不以 1 开头的行。我在这里缺少什么?

答案1

你的正则表达式并不意味着你所认为的那样。它匹配以 (^) 开头且重复一 (1) 次或多次 (*) 的所有行。所有字符串都与该正则表达式匹配。grep '^1'做你想做的事。

答案2

您尝试过以下操作吗?

 ls -1 | grep "^1"

也就是说,删除*,它基本上告诉grep,找到零个或多次出现的^1表达式。换句话说:匹配以 1 开头的行,或者不匹配。

答案3

尽管这不能回答您的问题,但对于您的目标来说,这是一个更好的解决方案:

ls -ld 1*

您可以使用 shell glob 列出所有以1.请注意,*在 shell 通配符中,它的含义与正则表达式不同。

答案4

^1.* 匹配整行,或者正如上面所说,^1 获取该行中包含的字符串。

不同样式的正则表达式使用不同的符号表示字符,某些选项指定您想要的样式。不同的选项指定是否要匹配整行,或仅匹配其中的一部分,或将整个输入作为一个字符串进行匹配。

相关内容