使用 ls 进行管道传输时,grep 命令在 solaris 中不起作用
when piped with ls, grep command is not working in solaris
我在 solaris 中使用以下命令
ls -l | grep '*PROC*'
但它不起作用。我有许多文件的名称中包含 "PROC",例如 XREF_PROC.complete,但是当我使用上述命令时,它没有显示任何输出。当我使用 ls *PROC*
时它可以工作但不能与 grep 一起使用。
谢谢
永远不要将 ls 输出通过管道传递给 grep。使用 find
代替:
find -maxdepth 1 -name '*POC*'
不过,仅作说明。上面语句的基本问题是正则表达式,应该是grep 'PROC'
而不是
你写的是“获取所有包含 *
字符的行,然后包含 PRO
字符串和零个或多个 C
字母。
试试这个
ls -l | grep PROC
您在 Linux 和 Solaris 中是 运行 不同的命令。
以下不会像 nsilent22 已经声明的那样工作,这与 OS:
无关
ls -l | grep '*PROC*'
万一文件在 PRO
.
之前的名称中有一个 *
字符,它会起作用
如果 *PROC*
仅扩展一次,即如果只有一个文件在其自己的名称中包含 PROC:
,则以下文件将(某种程度上)工作
ls -l | grep *PROC*
这也可以解释您在 Solaris 和 Linux 之间观察到的行为差异,但实际上与 OS 无关。您告诉我们在 Solaris 下有很多名称中带有 PROC 的文件,但在 Linux.
下可能只有一个
在任何情况下,在这里使用 grep
大多是无用的,除非在非常特殊的情况下,目录中有太多与 *PROC*
匹配的文件以使其名称不适合环境。否则,您将使用这个更简单的命令获得预期的结果:
ls -l *PROC*
我在 solaris 中使用以下命令
ls -l | grep '*PROC*'
但它不起作用。我有许多文件的名称中包含 "PROC",例如 XREF_PROC.complete,但是当我使用上述命令时,它没有显示任何输出。当我使用 ls *PROC*
时它可以工作但不能与 grep 一起使用。
谢谢
永远不要将 ls 输出通过管道传递给 grep。使用 find
代替:
find -maxdepth 1 -name '*POC*'
不过,仅作说明。上面语句的基本问题是正则表达式,应该是grep 'PROC'
而不是
你写的是“获取所有包含 *
字符的行,然后包含 PRO
字符串和零个或多个 C
字母。
试试这个
ls -l | grep PROC
您在 Linux 和 Solaris 中是 运行 不同的命令。
以下不会像 nsilent22 已经声明的那样工作,这与 OS:
无关ls -l | grep '*PROC*'
万一文件在 PRO
.
*
字符,它会起作用
如果 *PROC*
仅扩展一次,即如果只有一个文件在其自己的名称中包含 PROC:
ls -l | grep *PROC*
这也可以解释您在 Solaris 和 Linux 之间观察到的行为差异,但实际上与 OS 无关。您告诉我们在 Solaris 下有很多名称中带有 PROC 的文件,但在 Linux.
下可能只有一个在任何情况下,在这里使用 grep
大多是无用的,除非在非常特殊的情况下,目录中有太多与 *PROC*
匹配的文件以使其名称不适合环境。否则,您将使用这个更简单的命令获得预期的结果:
ls -l *PROC*