gpt4 book ai didi

linux - ls | 之间有什么区别? grep *e* 和 ls | grep e

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:20 28 4
gpt4 key购买 nike

当使用 ls | grep *e* 给出的结果比 ls | 小得多grep e,为什么会这样。它们不是相同的命令吗?任何人都知道这些命令之间的区别。

最佳答案

Are ls | grep *e* and ls | grep e not the same commands?

不,它们是不同的。与

$ ls | grep *e*

命令 shell 扩展模式 *e* 以匹配当前目录中包含字母 e 的所有文件。然后将此扩展文件列表传递给 grep 命令:

$ ls
Hello.txt Null.txt Sample.txt

执行时

$ ls | grep *e*

实际命令是 ls | grep Hello.txt 示例.txt

$ ls | grep e

没有文件名扩展,实际命令是 ls | grep e.

另见

如果想传参不展开,需要加引号:

$ ls | grep "*e*"

然后,命令实际上是 ls | grep *e*("*e*" 作为 argv[1] 传递给 grep 命令)。

请注意,shell 扩展不同于正则表达式 - shell 匹配 * 的任何字符串,而在正则表达式中 * 表示前面表达式的任意数量应发生。

关于linux - ls | 之间有什么区别? grep *e* 和 ls | grep e,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26858539/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com