"*.txt"正则表达式如何与ls命令一起使用?

Dud*_*ude -1 regex unix shell ls

我有一个文件名

atxt

我正在运行此命令

ls*.txt

理想情况下它应该匹配.使用'a'和*为零字符,但它返回的文件如

a.txt,b.txt

为什么这里是ls治疗.作为字面点,比正则表达式的任何字符都要好.

Hui*_*eng 7

它被称为文件通配,而不是正则表达式.

虽然两者都支持"?","*"之类的通配符,但它们有不同的方案.

例如,glob中的"a*"匹配以"a"开头的任何文件名,但在正则表达式中,它匹配任何字母"a"中包含0或更多的字符串.另一个区别是通配符"?" 正则表达式中的"*"必须具有前面的元素,而在globbing中它是不必要的.

至于你的上一个问题,一个点"." 在globbing中没有特殊意义,它总是一个字面点.为了匹配globbing中的一个未知字符,可以使用"?".