Bash関数に引数を渡してawkモードで動作する方法を知りたいです。同じ質問に答える傾向がある複数のQ&Aを読んでいましたが、何かが欠けています。
私は次の1行のコードを使用してArch Linuxを使用してパッケージ(この場合はvivaldi)を見つけますpackman
。
pacman -Sl | awk '$2~ /^vivaldi/{print $2, $3, $4, "[" $1 "]"}' | sort
次の関数を作成しましたが、実行すると出力は生成されません。
function pacname() {
#pattern="$1"
pacman -Sl | awk -v pattern="$1" '$2~ /^"pattern"/{print $2, $3, $4, "[" $1 "]"}' | sort
}
ベストアンサー1
/.../
Awkの正規表現では変数は拡張されません。代わりに、文字列形式を使用して"^"pattern
アンカー演算子を変数パターン値に関連付けることができます。
前任者。
echo 'baz foobar' | awk -v pattern="foo" '$2 ~ "^"pattern {print $1}'
baz