簡體   English   中英

OSX:將文件復制到具有相同名稱的文件夾

[英]OSX: Copying files to folders with same name

我正在尋找某種腳本,以將大約800個文件(例如:“ 1234567-XXXX XXX”)放置在一個文件夾中,並將單獨的案例編號復制到另一個具有相同案例的文件夾(服務器)的目錄中名稱,在子文件夾下,例如:

“ 1234567-XXXX XXX / 01_Management / 01_Correspondence”(所有文件夾的子文件夾相同)

總結:將一個文件復制到另一個與該文件同名的文件夾中,然后將其放在子文件夾中。

macOS Sierra

謝謝-Theis

您可以使用bash腳本來做到這一點。

首先進行備份!

將以下內容保存到HOME目錄中,作為reorganise

#!/bin/bash

find $(pwd) -name "* -*" -print0 | while read -d $'\0' f; do
   echo Processing file $f...
   base=$(basename "$f")
   echo "   base: $base"
   case=${base/ -*/}
   echo "   case: $case"
   # EDIT THE FOLLOWING LINE TO BE CORRECT FOR YOU !!!
   newplace="/path/to/new/place/$case"
   echo mkdir -p "$newplace"
   echo cp "$f" "$newplace"
done

然后啟動Terminal並僅輸入以下命令一次即可使腳本可執行:

chmod +x reorganise

然后轉到文件所在的目錄:

cd where/your/files/are

然后,您可以使用以下命令運行腳本:

$HOME/organise

它會告訴您它將做什么,而不做任何事情。 如果願意,可以刪除倒數第二行和倒數第三行的單詞echo ,然后再次運行。

您至少需要編輯指示的行。

樣本輸出

Processing file /Users/mark/tmp/1234563 - fredb...
   base: 1234563 - fredb
   case: 1234563
mkdir -p /path/to/new/place/1234563
cp /Users/mark/tmp/1234563 - fredb /path/to/new/place/1234563
Processing file /Users/mark/tmp/1234567 - fred...
   base: 1234567 - fred
   case: 1234567
mkdir -p /path/to/new/place/1234567
cp /Users/mark/tmp/1234567 - fred /path/to/new/place/1234567

暫無
暫無

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

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