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

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

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


prefix_1234_567.png


prefix_abcd_efg.png



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


prefix_567.png


prefix_efg.png



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

时间: 原作者:

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 正規表達式 不同。
原作者:
...