Es gibt Tools, die einen Regex-Such- und Ersetzungsvorgang auf den gesamten Dateinamen anwenden können, zB perl-rename
(auch häufig genannt prename
). In solchen Tools würden Sie mehrere Ziffern mit \d+
oder [0-9]+
innerhalb einer "Erfassungsgruppe" (Klammern) abgleichen und später mit $1
oder \1
abhängig vom Programm darauf verweisen .
Zum Beispiel:
prename -v 's/file(\d+)$/file$1_xyz/' file[123] prename -v 's/(file\d+)$/$1_xyz/' file[123]
(Mit dieser -v
Option werden die Änderungen durch den Vornamensdruck ausgedruckt. Sie können die -n
Änderungen verwenden, ohne tatsächlich etwas umzubenennen .)
Sie können dies auch mit mv
und erreichen sed
:
for old in file[123]; do new=$(sed -r 's/file([0-9]+)$/file\1_xyz/' <<< "$old") mv -v "$old" "$new" done
Aber wenn Sie genau hinschauen, brauchen Sie die Nummer nicht. Alles, was Sie tun, ist sowieso etwas statischen Text anzufügen:
prename 's/$/_xyz/' file[123] for f in file[123]; do mv "$f" "$_xyz" done