oiooiooioiioooiioiioiooo
Goto Top

Datensätze Suchen und ergänzen mit Linux Script

Guten Tag,

vor drei Jahren bin ich mal auf eine Lösung gestossen, wie man aus zwei Datein Tabellen Informationen zur eine Datei zusammen setzen kann. Damals habe ich noch gedacht. Das musst du dir merken. Nun brauche ich es und kann es einfach nicht finden. face-sad

Ich hab zweitausend Datensätze in Form einer CSV Tabelle bestehend aus erste Spalte Nummen 5-7 stellig, dann kommen noch vier Spalten und dann der Datensatz welche eine Amazonbestellnummer ist und noch eine Tabelle aus drei Tausend Datensätzen welche die erste Spalte eine sechs stellige Zahl ist und die zweite Spalte die Amazonbestellnummer ist. Nun muss diese sechs stellige Zahl in die Zeile der entsprechende Bestellnummer zugeordnet werden. Es sind aber nicht alle Bestellnummern in beiden Dateien vorhanden. Beispiel:

erste Datei
7108366;71145019041:00.87;06.08.18;302-8761068-7108466;FirmenName;
1228340;71145019042;00.28;06.08.18;222-2222222-2222222;KundenName;
9603544;71145019043;01.33;06.08.18;302-9031569-9613544;MaxMüller;

zweite Datei
782686;2018-08-03 09:14:15;302-9031569-9613544
782698;2018-08-03 09:20:33;302-8761068-7108466
772659;2018-08-03 09:30:07;333-3333333-3333333
782667;2018-08-03 09:33:32;444-4444444-4444444

jetzt soll die erste Zahl "782686" aus der ersten Zeile der richtigen Zeile der Amazonbestellnummer "302-9031569-9613544" zugeordnet werden. Ambesten sollte dann die andere Zahl "9603544" ersetzt werden.

Oder könnte man das auch mit Libre lösen?

Wünsche allen Lesern ganz viel Regen und kühle 25°C face-smile

Content-Key: 382709

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: SeaStorm
SeaStorm 08.08.2018 um 14:19:27 Uhr
Goto Top
Hi

wenns ne einmalige Sache ist, kannst du das spielend mit SVERWEIS lösen (MS Excel. Keine Ahnung wie das in Libre heist)
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 08.08.2018 um 14:46:39 Uhr
Goto Top
Sollte es eigentlich mit diesem Befehl auch gehen,

=SVERWEIS(F1;Tabelle5.C2:D2900;2;0)

Funktioniert jedoch nicht es spuckt mir ein Leeres Feld aus. Zu viele Datensätze?
Mitglied: colinardo
Lösung colinardo 08.08.2018, aktualisiert am 09.08.2018 um 16:13:17 Uhr
Goto Top
Servus.
#!/bin/bash
file1="file1.txt"  
file2="file2.txt"  
# Datei 1 Zeile für Zeile einlesen
while read line
do
    # Amazon Bummer aus Zeile extrahieren (5. Spalte)
    nr=$(echo "$line" | cut -d ';' -f5)  
    # Amazonnummer in zweitem File suchen und erste Spalte extrahieren
    new=$(grep $nr "$file2" | cut -d ';' -f1)  
    # wenn eine Zeile im zweiten File gefunden wurde
    if [ "$new" != "" ] ;then  
           # gebe die neue Nummer und die restlichen Spalten (ohne Spalte 1) aus Datei 1 aus
           echo "${new};$(echo "$line" | cut -d ';' -f2-)"  
    else
           # Keine Übereinstimmung in Datei 2 gefunden, gebe die Zeile unverändert aus
           echo "$line"  
    fi
done <"$file1"  
Grüße Uwe
Mitglied: it-frosch
it-frosch 08.08.2018 um 15:06:44 Uhr
Goto Top
@SeaStorm

SVERWEIS lösen (MS Excel. Keine Ahnung wie das in Libre heist)
auch SVERWEIS face-smile

grüße vom it-frosch
Mitglied: it-frosch
Lösung it-frosch 08.08.2018 aktualisiert um 15:17:01 Uhr
Goto Top
Hallo OIOI....,

ich würde es so machen:

Tabelle 1
wie deine + eine neue Spalte ganz links einfügen und dort =Bestellnummern_Spalte eintragen

Tabelle 2
wie deine
Spalte D=SVERWEIS(C1;Tabelle1.A1:B1000000;2;FALSCH)

Deine Ergebnistabelle kannst du dir auf dem Reiter 3 zusammenbauen und dann exportieren.

That's it. Sollte in 5min erledigt sein.

PS: geht natürlich auch in LibreOffice u.s.w.

grüße vom it-frosch
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 09.08.2018 um 08:59:40 Uhr
Goto Top
Herzlichen Dank euch allen für eure schnelle Hilfe!

@it-frosch
Mit LiebreOffice habe ich es leider nicht mehr ausprobiert, da der Script von Uwe funktioniert hat. Aber ich werde es mir in jedem Fall merken. Jetzt weiß ich ja wo ich es finden kann :D

@colinardo
Erste Klasse! Mit Hilfe von deinem Script konnte ich bei uns das schlimmste beseitigen. Wenn ich alles aufgeräumt habe werde ich deinen Script zerpflücken. Möchte sowas auch aus dem Finger schreiben können face-smile

Danke Euch!!!

Ich