使用 ls 管道时,solaris 中的 grep 不起作用

使用 ls 管道时,solaris 中的 grep 不起作用

我在 solaris 中使用以下命令

ls -l | grep '*PROC*'

但它不起作用。我有许多文件的名称中包含“PROC”,例如“XREF_PROC.complete”,但当我使用上述命令时,它没有显示任何输出。当我使用ls *PROC*它时它可以工作,但使用 grep 时则不行。

谢谢

答案1

总结

您不需要量词,只需 grep PROC:

ls | grep PROC

长版本

您行中的星号ls与您行中的星号不一样 grep

当命令行中有一个未转义的星号时,shell 会在ls看到它之前将其展开,这称为通配符。仅使用星号即可扩展为当前目录中的所有文件,例如尝试echo *。glob*PROC*将扩展为包含 PROC 的所有文件。

您正在使用的星号grep 使用单引号转义,因此将被解释为grep。但是,grep使用生物再生资源默认情况下(基本正则表达式),其中星号用作量词,因此需要某些字符或字符类来量化,例如'.*'

相关内容