我正在寻找某种类型的脚本,将大约800个文件与单独的案例编号复制:“1234567 - XXXX XXX”放在一个文件夹中,放入另一个文件夹(服务器)的目录中相同的案例名称,在子文件夹ex:
下“1234567 - XXXX XXX / 01_Management / 01_Correspondence”(所有文件夹的子文件夹相同)
总结:将一个文件复制到另一个与文件同名的文件夹,并将其放在子文件夹中。
macOS Sierra
谢谢 -Theis
答案 0 :(得分:0)
您可以使用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