Frage zu Text ersetzen und suchen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
trt
Beiträge: 3
Registriert: 27.06.2014 11:23:32

Frage zu Text ersetzen und suchen

Beitrag von trt » 27.06.2014 11:58:37

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

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Frage zu Text ersetzen und suchen

Beitrag von uname » 27.06.2014 12:34:16

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
In neue Datei:

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
Zur Vertiefung lese etwas über Shell/Bash-Programmierung und über die Befehle cat und sed.

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?

trt
Beiträge: 3
Registriert: 27.06.2014 11:23:32

Re: Frage zu Text ersetzen und suchen

Beitrag von trt » 27.06.2014 13:47:55

Das ist mir wirklich eine sehr große Hilfe und es funktioniert auch. Tausend Dank!!!

newdeb
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

Beitrag von newdeb » 27.06.2014 13:52:18

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

trt
Beiträge: 3
Registriert: 27.06.2014 11:23:32

Re: Frage zu Text ersetzen und suchen

Beitrag von trt » 27.06.2014 14:18:21

Genial. Danke.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Frage zu Text ersetzen und suchen

Beitrag von Meillo » 27.06.2014 14:55:37

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!

Antworten