Mam kilka plików w następujący sposób:
04602635_b0294.DAT20120807164534
04602637_b0297.DAT20120807164713
04602638_b0296.DAT20120807164637
04602639_b0299.DAT20120807164819
04602640_b0298.DAT20120807164748
04602641_b0300.DAT20120807164849
04602650_b0301.DAT20120807164921
04602652_b0302.DAT20120807164956
Muszę zmienić ich nazwę, aby wykluczyć prefiks. Musi wyglądać tak ...
b0294.DAT20120807164534
b0297.DAT20120807164713
b0296.DAT20120807164637
b0299.DAT20120807164819
b0298.DAT20120807164748
b0300.DAT20120807164849
b0301.DAT20120807164921
b0302.DAT20120807164956
EDYTOWAĆ
Zapomniałem dodać, że używam Solaris.
"${file#*_}"
?echo
, po prostu potokuj wyjście skryptubash
.Możesz do tego użyć narzędzia
rename
:Jeśli dołączysz,
-n
nic nie zmieni nazwy i po prostu pokaże, co można by zrobić bez-n
.W odpowiedzi na komentarz Rusha: my
rename
is faktycznie jest linkiem doprename
dostarczonego zperl
pakietem Debiana i Ubuntu .źródło
rename
nie zawsze jest tak samo w różnych systemach i czasami jego składnia może się różnić.perl-rename
wcale nie jest specyficzny dla Debiana. To nie tylko nazywarename
, aleperl-rename
czyprename
w innych dystrybucjach. Powinien zawsze znajdować się w repozytorium, a jeden z nich jest również zainstalowany z perlem .rename
i prawdopodobnie zainstalowana bez jawnego żądania pakietu, który nie jest nazywany tylkorename
, jest specyficzna dla Debiana. Inne dystrybucje Linuksa wywołują polecenieprename
lubperl-rename
unikają pomyłek z plikiem ut-linuxrename
i nie łączą go z pakietem perla, a ja nie znam żadnego uniksowego systemu Linux, który dostarczałby go pod tą nazwąrename
lub który dostarczałby go w domyślna instalacja pod dowolną nazwą.