Awkでシェル変数を使用する

Awkでシェル変数を使用する

私はこれを持っています:

if [[ $1 = "-c" ]] && [[ $2 =~ ^[a-z A-Z]+$ ]]
then
awk -v var="$2" '{print $2}' something.txt
fi

-c abc私が望むのは、some.txtに含まれている行を表示するコマンドを使用することですabc

ベストアンサー1

grepを使用してください:

grep abc something.txt

$2また、シェル(ご存知のように)第二の主張について言及していますが、awk違います。あなたの質問は、これについて誤解を示しているように明確にします。

シェルは$変数の値を引用する必要があります。したがって、をmyvar作成して名前付き変数を参照します$myvar

awk名前付き変数を参照するには、myvarその名前を使用しますmyvar。 myvar文字を含むリテラル文字列を参照するには、と入力します"myvar"

スーダン$awk大地具体的な数字。 so は、$2ファイルの現在行の 2 番目のフィールドを表します。または を設定すると、myvar = "4"$myvarを参照します。第四ファイルフィールド。

指定されたパターンに一致するファイルのすべての行を印刷するには、次のようにします。grepこれがまさに設計されたものです。

おすすめ記事