Ich habe Probleme, eine Möglichkeit zum Drucken einer bestimmten Spalte einer Textdatei mit dem Befehl awk zu finden.
Ich habe den awk-Befehl in einer FOR-Schleife, die eine große Anzahl von Verzeichnissen durchläuft. In jeder Schleife verwende ich den awk-Befehl, um zwei Spalten aus einer Textdatei mit einer großen Anzahl von Spalten zu drucken. Die erste Spalte, die ich brauche, bleibt bei jedem Schleifeprozess gleich, so dass ich $ 1 ohne Problem verwenden kann. Das Problem tritt auf, wenn ich eine zweite Spalte drucken muss.
Die zweite Spalte, die von awk gedruckt werden soll, ändert jede Iteration durch die for-Schleife. So weit, was ich versucht habe, ist diesErmöglicht der Befehl awk in bash die Verwendung von Variablen, die einen numerischen Wert enthalten, um eine bestimmte Spalte aufzurufen?
#Simplified Example
count=1 # the counter starts at 1 because I will not be needing col 1
for i in $list; do
count=count+1
awk '{print $1 "\t" ${count}}' $file > ex_files.txt
done
Hoffentlich macht das, was ich hier geschrieben habe Sinn. Ich habe mir vielleicht auf anderen Hilfeseiten angeschaut, um zu finden, was ich mit meiner Syntax falsch mache, aber bisher erfolglos waren. Die meisten Beispiele, in denen ich awk mit einer Variablen gesehen habe, sind keine dynamischen Variablen, also bin ich irgendwie festgefahren.
Wenn es einen besseren Befehl gibt zu tun, was ich versuche, im Gegensatz zu "awk", bin ich offen dafür. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen
Anstatt die Variable direkt einzubetten, würde ich '-v' empfehlen, um die Variable zu übergeben:' awk -vc = "$ {count}" '{print $ 1 \' $ count} ' –
i versucht mit Ihrem Vorschlag, aber es hat nicht ganz funktioniert. Noch einmal, ich will nicht nur ein Bash Wiz sein, aber meintest du auch: 'awk -v cnt =" $ {count} "'{print $ 1 \ t" $ cnt}' '? – Jon