Tim*_*Tim 61 grep regular-expression
我尝试搜索以“1”开头的行
ls -1 | grep ^1*
Run Code Online (Sandbox Code Playgroud)
但它返回不以 1 开头的行。我在这里缺少什么?
oto*_*kan 91
您的正则表达式并不意味着您认为它的作用。它匹配所有以 (^) 开头且重复一 (1) 次 (*) 次的所有行。所有字符串都匹配该正则表达式。grep '^1'
做你想做的。
Ber*_*ard 43
您是否尝试过以下操作?
ls -1 | grep "^1"
Run Code Online (Sandbox Code Playgroud)
也就是说,删除*
,它基本上告诉grep
,找到^1
表达式的零次或多次出现。换句话说:匹配或不匹配以 1 开头的行。
jor*_*anm 13
尽管这不能回答您的问题,但这是解决您的目标的更好方法:
ls -ld 1*
Run Code Online (Sandbox Code Playgroud)
您可以使用 shell glob 列出所有以1
. 请注意,*
与正则表达式相比,shell globbing 具有不同的含义。