Datenvergleich - Dateibearbeitung mit der BASH
Hallo Team,
ich habe eine Liste als txt-Datei, hier benannt mit"Listing".
Da sind diverse Einträge in Text-Form enthalten:
AAAAAAA
BBBBBBB
CCCCCCC
Aus einem Programm habe ich einen Wert einer Variable, tx="DDDDDDD" erhalten,
die ich mit dem Inhalt von Listing unter zuhilfenahme eines BASH-Scriptes verrgleichen will.
ToDo:
Ist der Wert der Variable in Listing, nix machen,
Ist der Wert der Variable nicht in Listing, schreibe ihn 1x dazu.
Listing Inhalt Ergebnis nach Durchführung Script soll sein
AAAAAAA
BBBBBBB
CCCCCCC
DDDDDDD
Nach meinem Script-Entwurf:
#!/bin/bash
for text in 'cat Listing'; do
if [[ $text != $tx ]]; then
echo tx >> Listing
fi
done
Hier wird tx, also DDDDDDD schon im ersten Loop durch den Vergleich hinzugefügt.
Ich habe also viele Hinzufügungen von DDDDDDD
Das ist so nicht angedacht.
Was mache ich falsch bzw. welche Funktion oder Anweisung fehlt ?
Dank euch für eure Tipps.
Mit frdl Gruß
rsadmchef
ich habe eine Liste als txt-Datei, hier benannt mit"Listing".
Da sind diverse Einträge in Text-Form enthalten:
AAAAAAA
BBBBBBB
CCCCCCC
Aus einem Programm habe ich einen Wert einer Variable, tx="DDDDDDD" erhalten,
die ich mit dem Inhalt von Listing unter zuhilfenahme eines BASH-Scriptes verrgleichen will.
ToDo:
Ist der Wert der Variable in Listing, nix machen,
Ist der Wert der Variable nicht in Listing, schreibe ihn 1x dazu.
Listing Inhalt Ergebnis nach Durchführung Script soll sein
AAAAAAA
BBBBBBB
CCCCCCC
DDDDDDD
Nach meinem Script-Entwurf:
#!/bin/bash
for text in 'cat Listing'; do
if [[ $text != $tx ]]; then
echo tx >> Listing
fi
done
Hier wird tx, also DDDDDDD schon im ersten Loop durch den Vergleich hinzugefügt.
Ich habe also viele Hinzufügungen von DDDDDDD
Das ist so nicht angedacht.
Was mache ich falsch bzw. welche Funktion oder Anweisung fehlt ?
Dank euch für eure Tipps.
Mit frdl Gruß
rsadmchef
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254172
Url: https://administrator.de/forum/datenvergleich-dateibearbeitung-mit-der-bash-254172.html
Ausgedruckt am: 27.12.2024 um 06:12 Uhr
2 Kommentare
Neuester Kommentar
Moin,
Warum mahst Du das so umständlich? Benutz doch grep und fals grep was findet, machst Du nichts, und wenn grep nicht findet, haust Du die zeile dazu.
lks
PS: Du führst den vergleich für jede zeile in "Listing" durch und da jede Menge ungleiche zeilen sind, fügt das skript auch jede menge zeilen zinzu. Nimm grep für den Test.
Warum mahst Du das so umständlich? Benutz doch grep und fals grep was findet, machst Du nichts, und wenn grep nicht findet, haust Du die zeile dazu.
lks
PS: Du führst den vergleich für jede zeile in "Listing" durch und da jede Menge ungleiche zeilen sind, fügt das skript auch jede menge zeilen zinzu. Nimm grep für den Test.