Добавить текст к помеченному выводу awk

Добавить текст к помеченному выводу awk

У меня есть функция, которая принимает имя файла. Затем она запускает команду и фильтрует вывод (исключительно) между двумя шаблонами, затем выводит разделенные запятыми значения с выходом имени файла команды.

Вот функция и ожидаемый результат:

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
.
.
.

Можно ли объединить awkкоманду и xargs printfкоманду? Я не могу добавить "отмеченные" строки с $lineпеременной.

решение1

Похоже, вы хотите передать переменную оболочки lineв awk, чтобы можно было вывести ее, когда flagона не равна нулю.

Бывший.

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

Смотрите также

решение2

Попробовал с командой ниже и все сработало

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

Связанный контент