Удаление совпадающего regex из имени файла

Переменная .RECIPEPREFIX GNU Make (примечание: не специальная цель) может использоваться для изменения символа, который выделяет строки рецепта.

Например:

.RECIPEPREFIX=>
%:
>printf '%s\n' \
>'' \
>'DocumentRoot "/var/www/html/$@"' \
>'ServerName $@' \
>'' \
>'Options +SymLinksIfOwnerMatch' \
>'Require all granted' \
>'' \
>'ServerAlias www.$@' \
>'' \
>> "$@"
>a2ensite "$@"
>systemctl restart apache2.service

0
28.01.2017, 18:31
3 ответа

С помощью zsh :

autoload zmv # best in ~/.zshrc
zmv -n '<->. (*)' '$1'

Удалите -n , когда все в порядке.

соответствует десятичному числу между x и y . <-> - любое число.

2
28.01.2020, 02:19

Чтобы просто отрезать первые четыре символа из имени файла:

for fpath in path/to/songs/*.mp3; do
  fname="${fpath##*/}"
  newname="${fname:4}"
  echo mv "${fpath}" "${fpath%/*}"/"$newname"
done

Удалите echo , как только убедитесь, что оно работает правильно.

1
28.01.2020, 02:19

Решение только в sed и sh:

for FILE in *.mp3
do mv "$FILE" "$(echo $FILE | sed -r 's/^[[:digit:]]{2}\. //g')"
done
1
28.01.2020, 02:19

Теги

Похожие вопросы