簡體   English   中英

Mac OS - 批量重命名文件夾中的所有文件但忽略所有子文件夾

[英]Mac OS - Batch Rename All Files in Folder but Disregard All SubFolders

我有一堆文件夾,我想重命名其中包含的所有文件減去任何子文件夾。

例如,假設我有兩個父文件夾:

ParentFolder1 - [PF1]
ParentFolder2 - [PF2]

每個父文件夾都有不同數量的子文件夾:

SubParentFolder1_1
SubParentFolder1_2
SubParentFolder2_1

在 ParentFolder 和每個 SubParentFolder 中可以有 .mp3、.txt 等文件。 等或更多子文件夾。

我將如何 go 以這種方式重命名所有和任何文件:

example.mp3 -> example - [PF1]
example.txt -> example - [PF2]
example.docx -> example - [PF2]

感謝任何輸入!

這是一種在一系列目錄中列出文件(而不是文件夾)然后對它們執行某些操作的方法……重命名的細節取決於您。

for FOLD in Parent*; 
    do for FILE in $(ls -p $FOLD | grep -v "/"); 
      do echo "$FOLD/$FILE" "$FOLD/${FILE%.*}"; 
done; done;

解釋:

對於與通配符Parent*匹配的目錄中的每個文件夾 ( FOLD ),列出內容,將/添加到目錄名稱的末尾。 在該列表上執行反向grep ,只留下文件名。 循環遍歷每個FILE並回顯原始文件夾+文件,然后是通過模式匹配刪除后綴的文件夾和文件。

一旦你測試了這個,你可以用mv替換echo來進行實際的重命名......(我把它們放在單獨的行上以使它們更具可讀性,但通常會將其作為一個長命令運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM