Regular-Expression
在 cp 中使用正則表達式
這是一個簡單的問題。我正在嘗試將目前目錄中以“axis-2”開頭並以“.jar”結尾的所有文件複製到目標目錄中,假設它是 ~/MyDirectory。我的第一個想法是嘗試
cp '^axis2.*jar$' ~/MyDirectory
但這行不通。我什至不確定我是否可以在 cp 中使用正則表達式。我也有一段時間沒有真正使用過正則表達式,我的語法可能完全不正確。當我嘗試這個 cp 時,只會輸出“沒有這樣的文件或目錄”錯誤消息。有人對如何解決這個問題有任何建議嗎?謝謝!
UNIX shell 使用glob 模式,而不是正則表達式。因此,如果要匹配以 開頭
axis2
和結尾的文件名.jar
,請使用:cp axis2*.jar /destination/directory
如果您有可用的 GNU
find
和 GNUcp
,則可以使用正則表達式,如下所示:find . -maxdepth 1 -regextype posix-basic -regex '.*/axis2[^/]*jar$' \ -exec cp -t ~/MyDirectory {} +
如果 glob 模式和 bash 擴展 glob 模式都不能滿足您的需求,這會很方便。