Mam listę nazw plików w katalogu (/path/to/local
). Chciałbym usunąć pewną liczbę znaków ze wszystkich tych nazw plików.Skrypt Bash, aby usunąć "x" ilość znaków na końcu wielu nazw plików w katalogu?
Przykładowe nazwy plików:
iso1111_plane001_00321.moc1
iso1111_plane002_00321.moc1
iso2222_plane001_00123.moc1
W każdym pliku Chciałbym usunąć ostatnie 5 znaków przed rozszerzeniem.
Na przykład:
iso1111_plane001_.moc1
iso1111_plane002_.moc1
iso2222_plane001_.moc1
wierzę, można to zrobić za pomocą sed
, ale nie można określić dokładnego kodowania. Coś jak ...
for filename in /path/to/local/*.moc1; do
mv $filname $(echo $filename | sed -e 's/.....^//');
done
... ale to nie działa. Przepraszam, jeśli zmasakrowałem opcje sed
, nie mam z tym większego doświadczenia.
'^' jest początkiem linii, z definicji nie może istnieć nic przed nim. – Kevin