Ich habe eine Datei, sagen wir A.txt, die etwa 80.000 Zeilen, aber 2 Felder hat. Beispiel Linien aussehen wie unten:Wie die folgende Aufgabe in Shell-Skript mit Grep aber ohne eine For-Schleife zu tun?
utt1 f
utt2 f
utt3 m
utt4 f
Ich habe eine zweite Datei B.txt, die mehr Art und Weise mehr Zeilen als A.txt hat und hat zwei Felder. Beispiel Linien aussehen wie unten
utt1_1 somethingHere
utt1_2 somethingElse
utt2_1 someText
utt2_2 somemore
utt2_3 someMore
utt3_1 someText
utt4_1 somemore
utt4_2 abcd
utt4_3 aanan
Das erste Feld in B.txt ist grundsätzlich die gleiche wie erstes Feld in A.txt gefolgt von _something (Jede Zeile wird variable Anzahl von Malen wiederholt).
Meine Aufgabe ist es, eine Datei zu erstellen, die wie diese für die Geschlechter
utt1_1 f
utt1_2 f
utt2_1 f
utt2_2 f
utt2_3 f
utt3_1 m
utt4_1 f
utt4_2 f
utt4_3 f
‚f‘ und ‚m‘ beginnt aussieht. mit anderen Worten, was ich tun möchte, ist, utt und gender Informationen von A.txt und grep für die Äußerung in B.txt zu bekommen und das erste Feld mit dem richtigen Geschlecht zu kartieren. Ich tue es eine Weile Schleife wie folgt:
while read utt gen; do
grep $utt B.txt | awk -v gen=$gen '{print $1" "gen}'
done < A.txt
Da ich es in einer Schleife und einer Länge von A.txt tue, ist groß, es viel Zeit nimmt die Aufgabe abzuschließen. Könntest du mir einen schnelleren Weg vorschlagen, es mit bash zu machen?
Danke
Möchten Sie es mit bash/awk usw. machen? Du hast die Frage mit Python getaggt, also ... –
Python oder Bash, ohne ein separates Skript schreiben zu müssen. Ich möchte es nur innerhalb von ein oder zwei Zeilen erledigen. Dies wäre eine Teilaufgabe in einem großen Shell-Skript, das bereits – user1540393
@Inian hat es tatsächlich so aussieht – user1540393