У меня есть каталог, полный файлов с именами в этом формате (с числами как запуск каждого имени файла):
102_file.txt
104_list.txt
242_another_file.txt
Я хотел бы переименовать их следующим образом (т.е. удаление чисел):
file.txt
list.txt
another_file.txt
Кто-либо может предложить способ сделать это (по-видимому, от терминала)?
Я предполагаю, что у Вас есть оболочка удара на Вашем Mac.
Можно сделать это с помощью расширения параметра удара:
for name in *; do mv -v "$name" "${name#[0-9]*_}"; done
Это удалит все цифры до первого _
.
Примечание: это перезапишет файлы, которые заканчивают тем, что имели то же имя.
Пример:
$ ls -1
000_file0.txt
001_file1.txt
002_file1.txt # <-- same name
003_003_file3.txt
$ for name in *; do mv -v "$name" "${name#[0-9]*_}"; done
`000_file0.txt' -> `file0.txt'
`001_file1.txt' -> `file1.txt'
`002_file1.txt' -> `file1.txt' # <-- overwrite
`003_003_file3.txt' -> `003_file3.txt'