Удалить начальные символы в имени файла до определенного шаблона

Удалить начальные символы в имени файла до определенного шаблона

Предположим, у меня есть файлы с именами: 93162-117352 - May 24, 2017 345 PM_16_163_student.csv

Я хочу переименовать его так: 16_163_student.csv

Как мне это сделать с помощью переименования?

решение1

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

Мое решение было бы таким (предполагая оболочку POSIX, например bash):

for name in *.csv; do
    mv -i -- "$name" "${name#*_}"
done

Будет ${name#*_}удалено все до первой буквы _имени включительно.

Это предполагает, что все файлы, с которыми вы хотите работать, соответствуют шаблону *.csv.

Я добавил , -iчтобы у вас была возможность прервать операцию, если это приведет к потере файлов (например, потому что есть и A_x.csv) B_x.csv.

Связанный контент