Werte einer Datei in Feldern einer anderen suchen

P

Praktikant4614

Grünschnabel
Hi,
ich möchte in einer Datei a nach Werten aus einer anderen Datei b suchen.
Datei a besteht aus mehreren Spalten pro Zeile.
Datei b besteht aus nur einem Wert pro Zeile.
Jede Zeile der Datei b kommt in verschiedenen Zeilen in der 2. Spalte der Datei a vor.
Nun möchte ich der Reihe nach diejenigen Zeilen der Datei a in jeweils eine eigene Datei ausgeben, die den ersten Wert der Datei b im zweiten Feld haben, dann die Zeilen, die den zweiten Wert der Datei b im zweiten Feld haben und so weiter.
Leider weiß ich nicht wie ich das fertig bekomme.
Versucht habe ich es versuchshalber mit dem Wert der ersten Zeile der Datei b: Funktioniert aber leider auch nicht.

for i in $(cat Datei_b)
do
if [$i=`awk '{printf "%-12s \n", $2}' Datei_a| sed -n '1 p' Datei_a`]
then
awk '{print $0}' Datei_a > Zwischen`sed -n '1 p' Datei_b`.txt
fi
done


Hm, an so was kompliziertes hab ich mich noch nie gewagt, entsprechend ist das Ergebnis.

Falls da jemand was besseres wüsste wärs fein!

Gruß Andi
 
Hallo

Also mal ein Schnellschuß, ohne Garantie .
Code:
# wir zählen die Zeilen mit:
C=0;
for I in $(cat DateiB);
do
((++C));
#Lesen der zweiten Datei mit Feldern suchen alle Zeilen welche im \
#Zweiten Feld mit $I gleich sind $I hält die Zeile von DateiB
# $C hält die Zeilennummer;
while read F1 F2 REST; do
if [ "$F2" -eq "$I" ]; then
echo "$F1$F2$REST" >>DATEI-AUSGABE$C#Erzeugen Datei<Zeilennummer>
fi
done <DATEI-A;

Ungetestet, wie gesagt.

Gruß Wolfgang
 
Zuletzt bearbeitet:

Ähnliche Themen

sed - Bitte um Unterstützung

Hilfe für ein shell script

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

Zeilen behalten, die Werte in einem bestimmten Bereich enthalten

Keine grafische Oberfläche (Debian Installation)

Zurück
Oben