4

У меня есть каталог, полный файлов с именами в этом формате (с номерами в начале каждого имени файла):

102_file.txt
104_list.txt
242_another_file.txt

Я хотел бы переименовать их следующим образом (т.е. удалить цифры):

file.txt
list.txt
another_file.txt

Кто-нибудь может предложить способ сделать это (предположительно из терминала)?

1 ответ1

7

Я предполагаю, что у вас есть оболочка bash на вашем Mac.

Вы можете сделать это, используя расширение параметра bash:

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'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .