Tener lo siguiente en una de mis funciones de shell:
function _process () {
awk -v l="$line" '
BEGIN {p=0}
/'"$1"'/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
}
, así que cuando se llama como _process $arg
, $arg
se pasa como $1
y se usa como patrón de búsqueda. Funciona de esta manera, ¡porque la carcasa se expande $1
en lugar del patrón awk! También l
se puede usar dentro del programa awk, declarándose con -v l="$line"
. Todo muy bien.
¿Es posible de la misma manera dar un patrón para buscar como variable?
Seguir no funcionará,
awk -v l="$line" -v search="$pattern" '
BEGIN {p=0}
/search/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
, como awk no se interpretará /search/
como una variable, sino literalmente.