ls -l | grep -El '.....w'
输出总是像(标准输入)。
答案1
.....
您的模式匹配包含 5 个字符和一个 的行的任意部分w
,例如:
-rwxrwxr-x -rwxrwxrwX
因此,您必须将锚点添加^
到模式中,以告知grep
仅从行的开头进行匹配:
ls -l | grep '^.....w'
该选项-l
在您的情况下不需要,因为您不是在 grep 文件,而是在(标准输入), 从man grep
:
-l, --files-with-matches
禁止正常输出;相反,打印通常会打印输出的每个输入文件的名称。扫描将在第一个匹配处停止。
该选项-E
似乎也没有必要:
-E, --extended-regexp
将 PATTERNS 解释为扩展正则表达式 (ERE,见下文)。
但您没有使用任何扩展的正则表达式。