У меня есть много директории, которые заканчиваются «_ и 6 цифр», например:пакетного переименования папки Удаление завершающие символы
diff_gb_and_pf_2voids_158543
Я хотел бы найти все, что папки в текущей папке, и переименуйте их путем удаления «_» и 6 цифр в конце.
До сих пор я застрял с этой командой:
find . -type d -print |grep '.*[0-9]\{6\}$' |xargs -I {} bash -c 'for i in {}; do mv "$i" ????; done;'
Я не могу найти, как сделать последний шаг. Я бы попытался вызвать sed, но как? Кроме того, если есть более приятный способ, сообщите.
Благодаря
Это похоже на работу, спасибо. Не могли бы вы просто объяснить «$ {i% _ *}», пожалуйста? – Napseis
@ Napseis: Конечно. Это замена параметров bash, которая удаляет из переменной кратчайший задний шаблон ('_ *'). Сводная таблица на странице [this] (http://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html) может стоить того. Приветствия. – Steve