muszi kódja ránézésre teljesen jó, csak nem veszi figyelembe a fájl soraiban található elérési útvonalakat (magyarul az xxxxxx.iam -re jól működne, de a \konyvtar1\konyvtar2\konyvtar3\xxxxxx.iam -re nem).
Kevésbé elegánsan/rugalmasan, de a megadott minta alapján bedrótozva a fájlnevek karakterszámát (6 + . + 3) egyszerűen átírható pl. így:
#! /bin/bash
LISTFILE="/path/to/listfile"
DESTDIR="/path/to/destdir"
declare -i cnt=1
while read filename; do
pdfname="${filename: -10:6}.pdf";
#A sorban jobbról visszalép 10 karaktert, majd kivág 6 karakternyi sztringet és hozzáfűzi a .pdf -et
if [ -f "$pdfname" ]; then
#!!Ez csak akkor működik, ha a fájlok(pl. xxxxxx.iam) ugyanabban a könyvtárban vannak, mint a szkript!
destname="$(printf "%04u.pdf" "$cnt")"
echo "$pdfname -> $DESTDIR/$destname"
cp -p "$pdfname" "$DESTDIR/$destname"
cnt="$(($cnt+1))"
fi
done < "$LISTFILE"