Shell

如何使用字元類

  • March 11, 2019

在我的一個系統中,當我執行時ls [:lower:]*,它會列出所有以小寫字母開頭的文件。

在另一個,它會給出一個錯誤:

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

工作目錄中有以小寫字母開頭的文件。

相反,執行ls [[:lower:]]*將在兩個系統上執行。我想了解為什麼ls [:lower:]*在第二個系統中不起作用以及使用字元類的正確方法是什麼。

兩者都在執行 Bash,但我想要一個也可以應用於其他 shell 的答案。

你的第一個例子沒有做你認為它做的事情。相反,它列出了以下列任一字元開頭的所有文件名:

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

(這些是 的字母lower,重新排序)。要使用字元類,您必須已經在方括號內*,然後*使用[:lower:],如第二個範例中所示。

引用自:https://unix.stackexchange.com/questions/505606