Avoir le suivant dans une de mes fonctions shell:
function _process () {
awk -v l="$line" '
BEGIN {p=0}
/'"$1"'/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
}
, alors quand appelé comme _process $arg
, $arg
est passé comme $1
et utilisé comme motif de recherche. Cela fonctionne de cette façon, car le shell se développe $1
à la place du motif awk! l
Peut également être utilisé dans le programme awk, en étant déclaré avec -v l="$line"
. Tout va bien.
Est-il possible de la même manière de donner un motif de recherche en tant que variable?
Après ne fonctionnera pas,
awk -v l="$line" -v search="$pattern" '
BEGIN {p=0}
/search/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
, awk ne sera pas interprété /search/
comme une variable, mais littéralement.