как получить пробел - пробел рекурсивно после всех моих номеров дорожек в моей музыкальной папке с командной строкой

Как я могу получить пробельный пробел тире рекурсивно после всех моих номеров дорожек в моей музыкальной папке с командной строкой?

0
задан 21 February 2019 в 00:43

2 ответа

Необходимо также указать, как в настоящее время появляются имена файлов. Если, например, папка, содержащая список файлов, похожа на это:

$ ls -1v
1Music.mp3
2Music.mp3
3Music.mp3
4Music.mp3
5Music.mp3
6Music.mp3
7Music.mp3
8Music.mp3
9Music.mp3
10Music.mp3

Мы можем использовать:

rename "s/(^[0-9]+)/\$1\ \-\ /" *.mp3

Добираться:

'1 - Music.mp3'
'2 - Music.mp3'
'3 - Music.mp3'
'4 - Music.mp3'
'5 - Music.mp3'
'6 - Music.mp3'
'7 - Music.mp3'
'8 - Music.mp3'
'9 - Music.mp3'
'10 - Music.mp3'

Чтобы быть на безопасной стороне, используйте -n опция протестировать Вашу команду сначала:

rename -n "s/(^[0-9]+)/\$1\ \-\ /" *.mp3

Эта команда покажет, как файлы будут переименованы, на самом деле не переименовывая их.

1
ответ дан 26 October 2019 в 04:54

Можно искать такой шаблон имени файла с помощью регулярного выражения.

find . -regex '.*\s\-\s.*'
  • Используйте find команда, которая ищет рекурсивно по умолчанию. . поскольку первый аргумент представляет путь для поиска в, можно заменить его любым произвольным путем, если Вы не хотите искать в текущем рабочем каталоге.
  • Пробел представлен \s в регулярных выражениях.
  • Я предположу, что Вы имеете в виду дефис (который может быть найден на клавиатуре) термином тире. Однако дефис имеет особое значение в регулярных выражениях и должен быть оставлен с помощью \-. Если Вы хотите включать другие типы тире, необходимо покрыть их использующий набор символов в regex, например. [\-–—].
  • Запуск и окончание regex с .* позволяет любые символы (включая ни один) прежде и после шаблона, на котором мы фокусируемся.
0
ответ дан 26 October 2019 в 04:54

Другие вопросы по тегам:

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