[Megoldva]BASH programozás

Fórumok

Sziasztok!

egy kis segítség kellene:

vannak fájlok egy könyvtárban, ezekben a fájlokban sed-del módosításokat csinálok, amit elmentek egy másik fájlba.

Hogy érthetőbb legyek, íme a script:

a=`ls /konyvtar`

for i in $a
do
j=`cat /konyvtar/${i} | grep "KeresettMinta" |sed 'bizonyos dolgokat kiveszek, es bizonyos dolgokat beteszek, a lenyeg, hogy csv legyen a vegen'`

if /konyvtart/${i} | grep "KeresettMinta"
then
echo "KeresettMinta;${i}${j}" >> /valmi/KeresettMinta.txt
fi
done

A gondom az, hogy amikor kiírom ennek a scriptnek a tartalmát, akkor azt szeretném ,hogy minden sorban legyen benne a KeresettMinta(mint szöveg);Fájl neve(ez a $i); majd a keresett sor($j), de csak egy sorban írja ki, hogy KeresettMinta(mint szöveg);Fájl neve(ez a $i); majd a keresett sor($j) és ezután már csak a keresett sor($j) sorokat írja a fájlba, egészen addig, amíg nem jön egy új fájl, de az új fájlnál is ezt csinálja stb...

Hogy tudnám ezt megoldani, hogy minden sor elé betegye a kívánt szöveget és kívánt változókat.

És meg egy fontos, $j esetén a sed mind esetben globális(sed 's///g')

köszönöm

Hozzászólások

Lehet, hogy tévedek, de mintha az $i változóban a fajl neve lenne, a $j-ben meg a fájl tartalma. Amikor az echo-val kiíratod, szerintem leírja a mintát, majd a fájlnevet, végül a fájl tartalmát.
A kívánt hatást talán úgy tudnád elérni, ha a fájl tartalmán is soronként végiglépegetnél.

Mivel egy órát sem aludtam, most nem vagyok képes értelmezni a specifikációdat, de sugallatként is felfogható hangos gondolkodással beszállok: ha valaki tudja kezelni a reguláris kifejezéseket, ezáltal a grepet és a sedet, és a kimenet átirányitása sem idegen számára, akkor az a valaki miért nem awk szkriptet ír nyögvenyelős processzforkolgatás helyett?