如何使用字符类

如何使用字符类

在我的一个系统中,当我运行 时ls [:lower:]*,它将列出所有以小写字母开头的文件。

在另一种情况下,它会报错:

ls: cannot access [:lower:]*: No such file or directory

工作目录中有一些以小写字母开头的文件。

相反,运行ls [[:lower:]]*将在两个系统上运行。我想了解为什么ls [:lower:]*在第二个系统中不起作用以及使用字符类的正确方法是什么。

两者都运行 Bash,但我想要一个也可以应用于其他 shell 的答案。

答案1

你的第一个例子并没有达到你的预期;相反,它列出了以以下任一字符开头的所有文件名:

  • :
  • e
  • l
  • o
  • r
  • w

(这些是 的字母lower,已重新排序)。要使用字符类,您必须已位于方括号内进而使用[:lower:],如第二个示例中所示。

相关内容