Ich habe eine Reihe von Dateien wie folgt:
04602635_b0294.DAT20120807164534
04602637_b0297.DAT20120807164713
04602638_b0296.DAT20120807164637
04602639_b0299.DAT20120807164819
04602640_b0298.DAT20120807164748
04602641_b0300.DAT20120807164849
04602650_b0301.DAT20120807164921
04602652_b0302.DAT20120807164956
Ich muss sie umbenennen, um das Präfix auszuschließen. Es muss so aussehen ..
b0294.DAT20120807164534
b0297.DAT20120807164713
b0296.DAT20120807164637
b0299.DAT20120807164819
b0298.DAT20120807164748
b0300.DAT20120807164849
b0301.DAT20120807164921
b0302.DAT20120807164956
BEARBEITEN
Ich habe vergessen hinzuzufügen, dass ich Solaris verwende.
"${file#*_}"
?echo
, sondern leiten Sie die Skriptausgabe inbash
.Sie können das Tool
rename
dafür verwenden:Wenn Sie anhängen
-n
, wird nichts umbenannt und nur angezeigt, was ohne getan worden wäre-n
.Als Antwort auf Rushs Kommentar: Mein
rename
is ist eigentlich ein Link zuprename
Debians und Ubuntusperl
Paket.quelle
rename
dies auf verschiedenen Systemen nicht immer gleich ist und die Syntax manchmal unterschiedlich sein kann.perl-rename
ist überhaupt nicht spezifisch für Debian. Es heißt einfach nichtrename
aberperl-rename
oderprename
in anderen Distributionen. Es sollte jedoch immer in den Repos sein und eines wird auch mit Perl installiert .rename
und wahrscheinlich installiert wird, ohne explizit ein Paket anzufordern, das nicht nur aufgerufen wirdrename
, ist spezifisch für Debian. Andere Linux-Distributionen rufen den Befehl aufprename
oderperl-rename
vermeiden Verwechslungen mit dem util-linuxrename
und bündeln ihn nicht mit dem Perl-Paket. Mir ist kein Nicht-Linux-Unix bekannt, das es unter dem Namenrename
oder in a versendet Standardinstallation unter einem beliebigen Namen.