У меня есть список имен файлов в каталоге (/path/to/local
). Я хотел бы удалить определенное количество символов из всех этих имен файлов.Bash-скрипт для удаления «х» количества символов в конце нескольких имен файлов в каталоге?
Пример имен файлов:
iso1111_plane001_00321.moc1
iso1111_plane002_00321.moc1
iso2222_plane001_00123.moc1
В каждом имени файла Я хочу, чтобы удалить последние 5 символов перед расширением файла.
Например:
iso1111_plane001_.moc1
iso1111_plane002_.moc1
iso2222_plane001_.moc1
Я считаю, что это может быть сделано с помощью sed
, но я не могу определить точное кодирование. Что-то вроде ...
for filename in /path/to/local/*.moc1; do
mv $filname $(echo $filename | sed -e 's/.....^//');
done
... но это не работает. Извините, если я отключил опции sed
, у меня нет большого опыта.
'^' начало строки, по определению ничего не может быть перед ней. – Kevin