Saya memiliki direktori yang berisi ribuan file dalam format LastnameFirstnameYYYYMMDD.pdf. Nama belakang dan nama depan akan selalu ada dalam huruf besar/kecil.
Saya ingin mengekstrak nama belakang sehingga saya dapat memindahkan file-file ini ke struktur direktori {first letter of last name}/lastname/full filename. Contoh:DoeJohn20190327 akan dipindahkan ke D/Doe/DoeJohn20190327
Jawaban yang Diterima:
Di sini Anda punya solusi. Saya mengujinya dan membuat folder seperti yang Anda jelaskan.
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