немає виделок:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Коли ви використовуєте цикл оболонки, mv
роздвойте один раз на файл. rename
Команда Перла не робить.
(Команда перейменування Perl має деякі обмеження, але в цьому конкретному випадку ці обмеження не застосовуються.)
Що стосується rename
команди, показаної раніше, так, це працює, але тоді у вас є все це плутанина між двома різними видами перейменування тощо. Якщо у вас є правильний, чудово, але якщо ні, це теж працює.
Якщо у вас немає команди perl-перейменувати і не можете її встановити, ви можете просто зробити це:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Як бачимо, для цього використовується та сама підміна, яка вказана у верхній відповіді. Звичайно, Perl перейменування є і інші навороти (верхній відповідь було сказано, -n
вже, тобто -0
, -f
і так далі), і тим більше з них вам потрібно, тим більше ви повинні встановити , що замість того , щоб додати власні таким чином , .
rename
. Я припускаю, що це Ларрі Уоллrename
, зrename
пакету Debian і похідної (і IIRCprename
для систем переконання RedHat). Дуже корисний інструмент.