Sie Frage lautet wirklich schlecht ...
Wie auch immer, ich glaube, Sie wollen diese:
REF=SEARCH_TEXT
echo "some text" | awk "/$REF/{print \$2}"
Hinweis Das entweichende von $2
und die doppelten Anführungszeichen.
oder dies:
REF=SEARCH_TEXT
echo "some text" | awk "/$REF/"'{print $2}'
Notiere die vernünftige Nutzung doppelte und einfache Anführungszeichen und kein Entkommen auf $2
.
Sie haben Shell-Erweiterung zu verwenden, da sonst wäre es ein Shell-Variable umfassen exportieren und aus der Umgebung mit awk mit - die Overkill in dieser Situation ist:
export REF=SEARCH_TEXT
echo "some text" | awk '{if (match($0, ENVIRON["REF"])) print $2}'
Ich denke, awk tut unterstützt keine Variablen in /.../ guards. Bitte korrigieren Sie mich, wenn ich falsch liege.
mögliche Duplikate von [Übergabe einer Shell-Skript-Variable an einen awk-Befehl] (http://superuser.com/questions/203819/passing-a-shell-script-variable-into-an-awk-command) – ephemient