jens4ever
Goto Top

In Bash durch jede Zeile einer Datei gehen und Keywords oder neue Zeile in andere Datei schreiben

Moin zusammen,

könnt ihr mir bitte bei dieser Sache helfen?

Ich habe eine Textdatei data.txt. Ich möchte durch jede Zeile gehen und wenn eine Zeile z.B. "abc" oder "xyz" enthält, weitere Strings in eine andere Datei info.txt schreiben. Wenn keiner der Strings enthalten ist in data.txt, soll *EINE* neue Zeile in info.txt geschrieben werden!

Bsp.:

data.txt enthält:
Katze
E-Mail
Tisch
Auto

Andere Wörter, die bei erkannten Strings in info.txt geschrieben werden sollen.

E-Mail = 'Mail; Kommunikation; Nachricht; Message;'
Auto = 'Automobil; Fahrzeug; PKW;'

Das Ergebnis in info.txt müsste also so aussehen:
<leere Zeile>
Mail; Kommunikation; Nachricht; Message;
<leere Zeile>
Automobil; Fahrzeug; PKW;

(Die Leerzeile muss gesetzt werden, weil ich später die Datei mit anderen wieder zusammensetzen muss.)

Könnt ihr mir helfen? Bekomme das leider nicht allein hin.
Ich lobe ein Bier (=5er per PayPal) für den aus der den Befehl baut. (Leider nur für den Ersten ;)

Danke und Gruß,
Jensen

Content-Key: 311145

Url: https://administrator.de/contentid/311145

Printed on: April 16, 2024 at 16:04 o'clock

Member: Jens4ever
Jens4ever Jul 28, 2016 at 18:17:04 (UTC)
Goto Top
Hiermit komme ich zurecht:

while read line; do
  if [[ $line =~ Keyword ]] ; then 
echo $line;
else
echo 'Nein';  
fi
done <displayNames.txt

Bitte löscht den Post, falls nicht relevant genug.
Jensen, der gleich ein Bier trinkt.
Mitglied: 129813
129813 Jul 28, 2016 at 19:39:34 (UTC)
Goto Top
You could also use 'awk'
awk 'BEGIN{arr["Auto"] = "Automobil; Fahrzeug; PKW;"; arr["E-Mail"] = "Mail; Kommunikation; Nachricht; Message;"} {print (arr[$1]) ? arr[$1] : ""}' data.txt >info.txt  
Regards