在 ksh 中是否有相当于 bash 的“nocaseglob”?

jus*_*one 1 ksh wildcards

我想做 如何将不区分大小写的模式与 ls 匹配?

除了 ksh。是否有可能在没有任何痛苦的情况下做到这一点(正则表达式)?

Sté*_*las 5

有3种主要实现 ksh

  • 来自 David Korn (AT&T ksh)的原始版本,有两个主要分支:ksh88ksh93(以及ksh93许多版本,每个版本都添加了新功能)。
  • pdksh,公共领域版本(免费重新实现ksh88,它主要兼容),这是sh在某些 BSD 上构建的基础,例如 MirOS 或 OpenBSD(因此mkshoksh)。
  • zsh实施。当调用 as 时kshzsh模拟ksh88具有ksh93as 的许多功能(以及一些差异)的行为。

ksh93

print -r -- *.~(i:txt)
Run Code Online (Sandbox Code Playgroud)

或者

print -r -- ~(i)*.txt
Run Code Online (Sandbox Code Playgroud)

ksh88pdksh及其衍生物,例如mksh

print -r -- *.[tT][xX][tT]
Run Code Online (Sandbox Code Playgroud)

随着 zsh 的实现ksh

setopt nocaseglob
print -r -- *.txt
Run Code Online (Sandbox Code Playgroud)

或者

setopt extended_glob
print -r -- (#i)*.txt
Run Code Online (Sandbox Code Playgroud)