
Ich muss die folgenden Dateien umbenennen. Ich möchte nur .job-209675
die Dateinamen entfernen, die mit beginnen SOA
, aber die ursprünglichen Dateinamen beibehalten, da sich in diesem Verzeichnis noch andere Dateien befinden
zum Beispiel
Vorher: ./SOA_990377897NW0001_1557340549734.xml.job-2074645
Nachher:./SOA_990377897NW0001_1557340549734.xml
Antwort1
Wenn eine Variable filename
einen Ihrer Dateinamen enthält, ${filename%.job-*}
wäre dies der Name ohne den Teil nach dem letzten Punkt.
Um die Dateinamen zu durchlaufen und sie nacheinander umzubenennen,
for filename in SOA_*.job-*; do
echo mv -i "$filename" "${filename%.job-*}"
done
Das echo
ist zum Schutz da. Sie sollten die Schleife einmal ausführen und die Ausgabe überprüfen und dann das entfernen, echo
wenn Sie denken, dass es korrekt ist. Die -i
Option bis mv
bewirkt, dass vor dem Überschreiben einer vorhandenen Datei eine Bestätigung angefordert wird.
Dies setzt voraus, dass alle relevanten Dateien (und sonst nichts) mit dem Muster übereinstimmen SOA_*.job-*
.