Ich habe untersucht, eine Eingabe-TXT-Datei in Unix zu sortieren, aber habe einige Probleme, auf die ich einen Ratschlag erhalten würde.Daten von AWK in ein Array
Product,color,stock
apple,red,400
apple,green,400
apple,yellow,400
grape,purple,500
banana,yellow,120
Sagen Sie dies ist meine Eingabedatei. Es ist nur eine Textdatei, aber ich möchte meine Informationen ein wenig konsolidieren.
ich erste awk Gruppe meine Produkte zusammen wie so verwendet ...
awk -F '[,]' 'NR >= 1 {b[$1];}
Das bin ich mit dem folgenden verlassen würde, wenn ich es ausgedruckt ...
apple
grape
banana
aber wenn ich wollte andere Informationen wie alle Farben des Produkts in dieser Zeile enthalten, die ich in Probleme lief. Wenn ich wollte, dass die 'b'-Indexdaten in ein anderes Array gehen, wie würde ich das tun (da ich nicht von außerhalb des awk-Codes auf' b 'zugreifen kann)? dachte, das folgende würde funktionieren, aber kein Glück.
awk -F '[,]' 'NR >= 1 {b[$1];}END{for (i in b) productArray+=(b[i])}'
[bearbeiten] Ihre Frage die erwartete Ausgabe, dass Abtastwerteingang gegeben aufzunehmen. "Ich kann scheinbar nicht von außerhalb des awk codes auf" b "zugreifen - na ja, natürlich können Sie nicht, wann haben Sie jemals auf den Wert einer Variablen zugreifen können, die in einem C oder einem anderen verwendet wird? Programm außerhalb dieses Programms? awk ist keine Shell, es ist ein Werkzeug, das Sie von Shell aufrufen, genau wie ein C-Programm. –