macos - macOS Mac OS X 終端批量重命名

  显示原文与译文双语对照的内容
137 0

我有一個文件夾,其中包含一系列的文件:

prefix_1234_567.png
prefix_abcd_efg.png

我想批量刪除一個下劃線和中間內容,以便輸出

prefix_567.png
prefix_efg.png

感謝相關但不完全說明:如何使用終端批量重命名文件雙擊 正規表達式,在 OS X 終端文件中重命名文件。

时间:原作者:0个回答

127 3

在具體情況下,可以使用以下 bash 命令( bash 是 macOS 中的默認 shell ):

for f in *.png; do echo mv"$f""${f/_*_/_}"; done

注意:預先進入 mv,以便執行乾的運行。刪除它以執行實際重命名。

你可以從 命令行 運行它,或者在腳本中使用它。

  • "${f/_*_/_}"bash參數擴展插件的一個應用:使用文本 _ 替換( 首) 子串匹配 Pattern _*_,有效地從名稱中剪切中間標記。
  • 請注意,_*_ 是一個基於xml的Pattern ( 通配符表達式,也用於匹配器),而不是一個的正則表達式。

如果你發現批量重命名文件,考慮安裝一個專門的工具,比如基於perl的rename 實用工具( ) 。在 macOS 上,你可以使用流行的軟體包管理器 Homebrew 插件安裝它,如下所示:

brew install rename

下面是使用 rename的頂部命令的等效項:

rename -n -e 's/_.*_/_/' *.png

同樣,這裡命令執行一次干運行;刪除 -n 以執行實際重命名。

  • bash 解決方案類似,s/.../.../ 執行文本替換,但與 bash - true 正規表達式 不同。
原作者:
...