pnem"Sajnos, a while-t nem értem, "
Eredetile find -exec {} izébizé alapján próbáltam összehebrákolni, de nem ment a második behelyettesítés.
Ezért ciklust rettyintettem, hogy értsd:
find *.txt
megkeresi a szöveges fájljaidat.
a | jel a find kimenetét becsatornázza a másik program bemenetére, ami a ciklus..
while read -r nev;
Amíg van mit olvasni a bemenetről, beolvassa a "nev" változóba. Lehetne akármi a neve, én nev-nek neveztem.
Innentől $nev a hivatkozás, és az helyettesíti az aktuális fájlnevet, amin dolgozol.
do után jön a teendő:
do sed -e 's/sarga/kek/g' $nev > $nev.kek.txt;
Tehát, ha a nev=Fajl1.txt, akkor a parancs valóságos kinézete:
sed -e 's/sarga/kek/g' File1.txt > File1.txt.kek.txt
done pedig lezárja a ciklust.
Lehet, hogy valami ilyesmire van szükséged:
find *.txt | while read -r nev; do sed -e 's/sarga/kek/g' $nev > ${nev//Sarga/Kek}; done
(Ezt most még nem próbáltam ki, csak okoskodás...)