我有一个目录,里面有成千上万个格式为 LastnameFirstnameYYYYMMDD.pdf 的文件。姓氏和名字将始终在标题大小写中。
我想提取姓氏,以便我可以将这些文件移动到 {first letter of last name}/lastname/full filename 的目录结构中。示例:DoeJohn20190327 将移至 D/Doe/DoeJohn20190327
在这里你有一个解决方案。我对其进行了测试,并按照您的解释创建了文件夹。
for filename in *.pdf
do
echo "Processing file $filename "
first_letter="${filename:0:1}"
mkdir -p $first_letter #if already exists won't print error
last_name=$(echo $filename | sed 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' |awk '{print $1}')
mkdir -p $first_letter/$last_name
mv $filename $first_letter/$last_name
done
Run Code Online (Sandbox Code Playgroud)