Ich habe diesen einfachen awk
Code:awk: Art-Datei basierend auf Benutzereingaben
awk -F, 'BEGIN{OFS=FS} {print $2,$1,$3}' $1
Funktioniert prima, außer ich fest einprogrammiert habe, wie ich die kommagetrennte Felder meiner Klartextdatei sortiert werden soll. Ich möchte zur Laufzeit angeben können, in welcher Reihenfolge ich meine Felder sortieren möchte.
Ein hacky Weg dachte ich über das tun dies war:
read first
read second
read third
TOTAL=$first","$second","$third
awk -F, 'BEGIN{OFS=FS} {print $TOTAL}' $1
Aber das funktioniert nicht wirklich:
awk: illegal field $(), name "TOTAL"
Auch ich weiß ein wenig über awk
‚s Fähigkeit Benutzereingaben akzeptieren:
BEGIN {
getline first < "-"
}
$1 == first {
}
Aber ich frage mich, ob die erstellten Variablen wiederum als Variablen im ursprünglichen Druckbefehl verwendet werden können? Gibt es einen besseren Weg?
ich vergessen zu '-V' für die beiden anderen Variablen. – chepner
Danke, das ist großartig! – celestialroad