Привет, кто-нибудь может мне помочь? Я пытаюсь убрать начальные цифры из нескольких mp3-файлов, чтобы «01 some_file.mp3» превратился в «some_file.mp3», если бы кто-нибудь мог показать мне, как делать с zmv, что было бы здорово
2 ответа
0
Такой скрипт может работать:
for f in *; do
mv "$f" "${f:3}"
done
Это удалит первые 3 символа имени файла (два числа и пробел).
Или как то так:
for f in *; do
mv "$f" "$(printf "$f" | cut -d' ' -f2-)"
done
Если между номером и остальной частью имени есть пробел. Это напечатает все от пустого места до конца файла.
Обратите внимание, что это будет работать только для фиксированного числа цифр (первый пример) или если между двумя полями есть фактический пробел (второй пример), если случай не применяется ни к одному из упомянутых решений, вы все равно можете рассчитывать на соответствие регулярному выражению:
for f in *; do
mv "$f" "$(printf "$f" | sed s/[[:digit:]]*\ *//)"
done
Это будет работать для любого количества начальных цифр и / или пробелов. Например:
echo '0001 hellow aasa 1212.mp3' | sed s/[[:digit:]]*\ *//
Будет печатать
hellow aasa 1212.mp3