我有一個文件名「* .txt」正則表達式如何與ls命令一起使用?
atxt
,我在運行此命令
LS * .TXT
理想情況下,應該匹配。用 'a' 和*與零字符,但它返回的文件就像
A.TXT,b.txt
爲什麼這裏LS被處理。作爲字面點,評分者比正則表達式的任何字符。
我有一個文件名「* .txt」正則表達式如何與ls命令一起使用?
atxt
,我在運行此命令
LS * .TXT
理想情況下,應該匹配。用 'a' 和*與零字符,但它返回的文件就像
A.TXT,b.txt
爲什麼這裏LS被處理。作爲字面點,評分者比正則表達式的任何字符。
它不是正則表達式,它wildcard,其中*
指任何字符(S),.txt
這就是爲什麼你得到與擴展名的所有文件之前.txt
Files and directories - WildCard
當指定的文件名(或路徑)在CP/M,DOS,Microsoft Windows 和類Unix操作系統中,星號字符(「*」) 替代零個或多個字符。在類Unix系統 ,問號(「?」)可替代一個字符
這就是所謂的file globbing,不regular expression。
儘管兩者都支持「?」,「*」等通配符,但它們有不同的方案。
例如,在水珠「A *」匹配任何文件名與「一」開始的,但在正則表達式的任何串具有0個或多個字母「a」的匹配。另一個區別是通配符「?」和正則表達式中的「*」必須有一個前面的元素,而在globbing中不需要。
至於你的最後一個問題,一個點「。」在globbing中沒有特別的意義,它總是一個字面點。要匹配globbing中的一個未知字符,可以使用「?」。