übergeben Ich habe eine Datei a.txt
sagen und unten sind die Inhalte davon:Drucken Sie eine Liste der Felder als Variable
bob 1 100
lincoln 2 200
chris 3 300
Der Inhalt der Datei durch Leerzeichen getrennt werden.
Mit awk konnte ich auf jede Spalte zugreifen. Mit folgendem Befehl drucken 1. und 3. durch Komma getrennt Spalten:
cat a.txt | awk ' { print $1","$3} '
und ich war erfolgreich.
Jetzt möchte ich die Kriterien dynamisch aus einem anderen Shell-Skript übergeben. Mit den Kriterien meine ich - $1","$3
.
Ich versuchte den folgenden Befehl, aber es hat nicht funktioniert.
myvar="$1"
awk -v a="$myvar" ' { print a } ' a.txt
aber dies ist das Drucken $1
3-mal so gibt es drei Reihen in a.txt
.
Wie kann ich auf diese Weise eine Liste von Feldern an awk übergeben?
'„$ 1“' bedeutet, das erste Argument des Shell-Skript. Wie hast du dein Skript aufgerufen? 'Skript" 1 "'? Wenn 'a'' 1' ist, sollten Sie '$ a' – Kent
" $ 1 "," $ 3 "drucken - dieser Teil muss dynamisch übergeben werden - zusammen mit den Trennzeichen. sagen wir, wenn ich 5 Spalten habe, sollte ich in der Lage sein, etwas wie $ 1 ", $ 2" - ", $ 3" - "$ 4", "$ 5 dh 1 & 2, 4 & 5 getrennt durch Kommas und Ruhe durch - zu senden übergeben Sie Muster von einer anderen Datei als Argument. und awk Befehl wird auf einer anderen Datei sein –