Shell
如何使用字元類
在我的一個系統中,當我執行時
ls [:lower:]*
,它會列出所有以小寫字母開頭的文件。在另一個,它會給出一個錯誤:
ls: cannot access [:lower:]*: No such file or directory
工作目錄中有以小寫字母開頭的文件。
相反,執行
ls [[:lower:]]*
將在兩個系統上執行。我想了解為什麼ls [:lower:]*
在第二個系統中不起作用以及使用字元類的正確方法是什麼。兩者都在執行 Bash,但我想要一個也可以應用於其他 shell 的答案。
你的第一個例子沒有做你認為它做的事情。相反,它列出了以下列任一字元開頭的所有文件名:
:
e
l
o
r
w
(這些是 的字母
lower
,重新排序)。要使用字元類,您必須已經在方括號內*,然後*使用[:lower:]
,如第二個範例中所示。