( lguru | 2009. 10. 07., sze – 00:50 )

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"