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-ID: 311145

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

Ausgedruckt am: 25.11.2024 um 00:11 Uhr

Jens4ever
Jens4ever 28.07.2016 um 20:17:04 Uhr
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.
129813
129813 28.07.2016 um 21:39:34 Uhr
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