gpt4 book ai didi

bash - fish shell 中的全局匹配(通配符)不匹配 bash 行为

转载 作者:行者123 更新时间:2023-11-29 09:10:09 26 4
gpt4 key购买 nike

当我在 bash 中执行以下命令时,我得到了一个与我想要的正则表达式匹配的文件列表:

$> ls *-[0-9].jtl
benchmark-1422478133-1.jtl benchmark-1422502883-4.jtl benchmark-1422915207-2.jtl

但是,当我在 fish shell 中运行相同的命令时,我得到不同的结果:

$> ls *-[0-9].jtl
fish: No matches for wildcard '*-[0-9].jtl'.
ls *-[0-9].jtl
^

怎么会?

最佳答案

Fish 的文档并未声称支持 POSIX glob 模式的全部功能。

引用文档:

Wildcards

If a star (*) or a question mark (?) is present in the parameter, fish attempts to match the given parameter to any files in such a way that:

  • ? can match any single character except /.
  • * can match any string of characters not containing /. This includes matching an empty string.
  • ** matches any string of characters. This includes matching an empty string. The string may include the / character but does not need to.

值得注意的是,没有提及字符类,因为 fish 不支持它们。

如果您希望 glob 保证支持所有 POSIX (fnmatch) 功能,请使用 POSIX 兼容或 POSIX 超集 shell。

关于bash - fish shell 中的全局匹配(通配符)不匹配 bash 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838665/

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