这是一个作业问题:
将所有文件名与2个或多个以小写字母开头但不以大写字母结尾的字符匹配。
我不明白为什么我的解决方案无法正常工作。
所以我执行了以下内容:
touch aa
touch ha
touch ah
touch hh
touch a123e
touch hX
touch Ax
ls [a-z]*[!A-Z]
输出:
aa ha
我的问题:为什么不匹配“ ah”,“ hh”或“ a123e”?
@Serg,请注意,除C语言环境外,POSIX未指定[AZ]的行为。
—
斯特凡Chazelas
mksh
例如,zsh
与的[A-Z]
不匹配É
。ksh93的[A-Z]
比赛在,É
但没有在h
。
mksh
的外壳,但没有bash --posix
,所以得是对bash`一些具体的规则