Toon posts:

Sed commando vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik heb het volgende linux 'probleem':

Ik heb een x aantal .txt bestanden waarbinnen ik een stukje tekst automatisch wil gaan vervangen met een andere tekstregel. Dit kan geloof ik met het commando 'sed'. Alleen hoe kan je ervoor zorgen dat hij in 1 keer alle txt bestanden gaat wijzigen en het resultaat ook meteen saved op je schijf.

Ik dacht zoiets van:
sed s/origineel/vervanging/g *.txt

Ik weet dat er scripts voor zijn maar ik wil het dus handmatig ook kunnen. Ik heb de manual van sed doorgelezen, maar kom er niet uit. Alle tips zijn dus welkom :7

Verwijderd

ik zou het zo doen:
for blaat in `ls *.txt`; do
cat $blaat| sed -e s/foo/bar/ > $blaat
done

het kan zijn dat sed zelf ook een functie heeft om files te openen (dan hoef je dus niet eerst te catten), maar dat weet ik zo snel ff niet uit mijn hoofd :)

Verwijderd

Maak een klein shellscriptje:
code:
1
2
3
4
5
6
#!/bin/sh
regex=$1
shift
for file; {
        cat $file | sed $regex > $file
}

Noem het bv. "sedall", maak het executable en klaar is kees.

Voorbeeldje: ./sedall s/ja/nee/g /tmp/*.txt

(Sidenote: je moet die file catten, anders schrijft sed de file terwijl hij hem leest.)