Как переименовать группу файлов и удалить расширение

Как переименовать группу файлов и удалить расширение

Мне нужно переименовать следующие файлы. Я хочу удалить только .job-209675те имена файлов, которые начинаются с , SOAно оставить исходные имена файлов нетронутыми, так как в этом каталоге есть и другие файлы

например
До: ./SOA_990377897NW0001_1557340549734.xml.job-2074645
После:./SOA_990377897NW0001_1557340549734.xml

решение1

Если переменная filenameсодержит имя одного из ваших файлов, то это ${filename%.job-*}будет имя без бита после последней точки.

Чтобы перебрать имена файлов, переименовывая каждое из них по очереди,

for filename in SOA_*.job-*; do
    echo mv -i "$filename" "${filename%.job-*}"
done

Для echoзащиты. Вам следует запустить цикл один раз и проверить вывод, а затем удалить, echoесли вы считаете, что он правильный. -iПараметр mvзаставляет его запрашивать подтверждение перед перезаписью существующего файла.

Это предполагает, что все соответствующие файлы (и ничего больше) соответствуют шаблону SOA_*.job-*.

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