Hallo,
ich bin neu hier und habe eine Frage. Ich hoffe ich bin hier an der richtigen Stelle. Zu meiner Frage habe ich in der Forumssuche nichts gefunden.
Ich habe eine Zeile blablablabBEGRIFFblaablaa und eine Textdatei mit 298 Begriffen. Jetzt möchte ich gerne die Zeile blablablabBEGRIFFblaablaa
298 mal ausgeben, in eine andere Datei schreiben und dabei soll BEGRIFF eben durch die 298 Begriffe ersetzt werden.
Hat jemand einen guten Tip für mich? Meine Erfahrungen mit Scripting sind leider noch begrenzt. ich freue mich auch über Links oder einen Hinweis zu
Themen hier im Forum, die mir helfen könnten. In jedem Fall vielen Dank.
Viele Grüße, T
Frage zu Text ersetzen und suchen
Re: Frage zu Text ersetzen und suchen
Code: Alles auswählen
cat zeile.txt
blablabBEGRIFFblaablaa
Code: Alles auswählen
cat begriffe.txt
eins
zwei
drei
Code: Alles auswählen
j=$(cat zeile.txt);for i in $(cat begriffe.txt );do echo $j|sed "s/BEGRIFF/$i/";done
blablabeinsblaablaa
blablabzweiblaablaa
blablabdreiblaablaa
Code: Alles auswählen
j=$(cat zeile.txt);for i in $(cat begriffe.txt );do echo $j|sed "s/BEGRIFF/$i/";done > neue-datei.txt
Ok. Mein Script ist eher schlecht, siehe: http://www.socallinuxexpo.org/scale5x/p ... aumann.pdf (S. 20ff. Useless use of Cat)
Und wer postet die awk-Version?
Re: Frage zu Text ersetzen und suchen
Das ist mir wirklich eine sehr große Hilfe und es funktioniert auch. Tausend Dank!!!
-
- Beiträge: 134
- Registriert: 03.02.2011 11:11:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Frankfurt
Re: Frage zu Text ersetzen und suchen
uname hat geschrieben:Und wer postet die awk-Version?
Code: Alles auswählen
awk 'BEGIN {getline zl < "zeile.txt"}{t=zl;sub(/BEGRIFF/,$0,t);print t}' begriffe.txt
Re: Frage zu Text ersetzen und suchen
Genial. Danke.
Re: Frage zu Text ersetzen und suchen
Hier zwei Varianten, die nicht, wie ihr das gemacht habt ,``BEGRIFF'' ersetzen sondern an ihm auftrennen:
Code: Alles auswählen
awk -F BEGRIFF 'BEGIN{getline <"zeile.txt";a=$1;b=$2} {print a $0 b}' begriffe.txt
Code: Alles auswählen
z=`cat zeile.txt` sed "s/.*/${z%%BEGRIFF*}&${z##*BEGRIFF}/" begriffe.txt
Use ed once in a while!