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.
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
zweite Datei
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
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.
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
1
2
3
2
3
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
1
2
3
4
2
3
4
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 382709
Url: https://administrator.de/forum/datensaetze-suchen-und-ergaenzen-mit-linux-script-382709.html
Ausgedruckt am: 14.04.2025 um 10:04 Uhr
6 Kommentare
Neuester Kommentar
Servus.
Grüße Uwe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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"
@SeaStorm

grüße vom it-frosch
SVERWEIS lösen (MS Excel. Keine Ahnung wie das in Libre heist)
auch SVERWEIS grüße vom it-frosch
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
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