Если вы используете bash в качестве оболочки, это простая задача для конвейера оболочки.
ls | grep '\.out$' | while read file; do echo mv "$file" "${file%.*}"; done
ls
создает список файлов в каталоге.
grep '\.out$'
извлекает имена файлов, оканчивающиеся на .out, и отбрасывает остальные.
while read file
читает имена файлов по одному.
echo mv "$file" "${file%.*}"
отображает, но не запускает команду mv, которая переименовывает каждый файл в версию без его расширения. Бизнес ${file%.*}
- это синтаксис bash для удаления расширения файла. Когда вы убедитесь, что конвейер будет делать то, что вам нужно, если он будет работать по-настоящему, удалите часть echo
и дайте ему по-настоящему работать.
ls | grep '\.out$' | while read file; do mv "$file" "${file%.*}"; done