Aus dieser Dateihttps://1drv.ms/t/s!AjlMpzDMn2h7hWKyBGBxdhHXwjm8
Ich muss Spalte 3 nehmen, die aus den Zahlen 1-6 besteht, und diese Zahlen in Wörter wie 1-funkelnd, 2-fein ausgeben, ohne die Datei zu ändern.
Auch diese müssen gezählt werden, damit ich die Anzahl der jeweiligen Sorten mit den dazugehörigen Namen ausgeben kann.
Ich habe viele verschiedene awk
Codes ausprobiert und konnte es nicht bekommen. Derzeit habe ich
awk -F: '$3==1, ((counter++)) {print counter1}' wine.txt
das gibt mir überhaupt keine Ausgabe.
Antwort1
awk
Lösung:
Unter der Annahme der Beziehungskarte:
(Schaumwein = 1 fein = 2 gespritet = 3 süß = 4 weiß = 5 rot = 6)
awk -F':' 'BEGIN{ split("sparkling fine fortified sweet white red", words, " ") }
$3 in words{ c[$3]++ }
END{ for(i in words) print words[i]"="c[i] }' file
split("sparkling fine fortified sweet white red", words, " ")
- Teilen Sie die Zeichenfolge mit den entscheidenden Wörternwords
durch ein Trennzeichen" "
(Leerzeichen) in ein Array auf, sodass das Array mit fortlaufenden Nummern indiziert wird, die Wörter als Werte haben (d. h.words[1]="sparkling" words[2]="fine" ...
)$3 in words{ c[$3]++ }
- prüfen, ob der 3. Feldwert (mit einer Ziffer) innerhalb der Array-words
Indizes vorkommt, und wenn ja, dann zählen Sie die Übereinstimmungen mitc[$3]++
Die Ausgabe:
sparkling=
fine=15
fortified=28
sweet=10
white=23
red=24