Mam do napisania skrypt, który zamienia rozszerzenie na dowolne inne podane jako argument skryptu. Chciałem użyć funkcję tr ale nie działa do końca tak jak chciałem.
zdjecie.jpg | tr ".jpg" ".png"
Czego wynikiem jest zdpecie.png czyli zmienia również nazwę pliku co nie jest pożądanym efektem. Czy jest możliwość aby funkcja zmieniała cały łańcuch znaków dopiero gdy znajdzie dokładnie taki łańcuch jaki został podany jako pierwszy argument funkcji tr? W jaki sposób można to zrobić jak najprościej?
#! /bin/bash
#szukane rozszerzenie
rozszukane=$1;
#rozszerzenie, na ktore ma zostac zmienione szukane
rozdozamiany=$2;
#utworzenie listy plikow z szukanym rozszerzeniem
pliki=$(ls | grep "\.$rozszukane");
#zamiana rozszerzenia w liscie plikow na to podane jako drugi argument
for plik in $pliki
do
mv $plik ${plik%.*}.$rozdozamiany
done