Agregar texto a la salida marcada de awk

Agregar texto a la salida marcada de awk

Tengo una función que toma un nombre de archivo. Luego ejecuta un comando y filtra la salida (exclusiva) entre dos patrones, luego genera valores separados por comas con la salida del nombre de archivo del comando.

Aquí está la función y el resultado esperado:

get_cons_obs() {
    local line="${1}"
    "command" -i "${line}" 2>&1 \
        | awk '/^ERROR$/{print "ERROR"} /^START$/{flag=1;next} /^END$/{flag=0} flag' \
        | xargs printf "${line},%s\n"
}
file01,thing01
file01,thing02
file01,thing03
.
.
.

¿Es posible combinar awkcomando y xargs printfcomando? Parece que no puedo agregar las líneas "marcadas" con la $linevariable.

Respuesta1

Parece que desea pasar la variable de shell linea awk para poder imprimirla cuando flagno sea cero

Ex.

awk -v line="$line" '. . . flag {printf "%s,%s\n", line, $0}'

Ver también

Respuesta2

Probé con el comando A continuación y funcionó bien.

awk '/pattern1/,/pattern2/{print $0","FILENAME}' filename

información relacionada