san*_*who 3 linux unix grep solaris egrep
我在solaris中使用以下命令
ls -l | grep '*PROC*'
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我有许多文件的名称中包含“PROC”,例如“XREF_PROC.complete”,但是当我使用上述命令时,它没有显示任何输出。当我使用ls *PROC*它的工作但不使用 grep 时。
谢谢
Tho*_*hor 10
tl;博士
您不需要量词,只需为 PROC 使用 grep:
ls | grep PROC
Run Code Online (Sandbox Code Playgroud)
长版
您ls行中的星号与您行中 的星号不同grep。
当您在命令行上有一个未转义的星号时,shell 会在ls看到它之前将其展开,这称为globbing。单独的星号会扩展到当前目录中的所有文件,例如echo *. 该*PROC*水珠将扩大到包含PROC所有文件。
您使用的是带有星号grep 是逃脱了单引号,因此将被解释grep。但是,默认情况下grep使用BRE(基本正则表达式),其中星号用作量词,因此需要一些字符或字符类来量化,例如'.*'.