Передача команды Pipe в Awk - PullRequest
       21

Передача команды Pipe в Awk

1 голос
/ 14 января 2020

Я хочу передать вывод команды в awk. Я хочу добавить это число в каждую строку нового столбца в существующем TXT-файле. Новый столбец должен находиться в конце и не обязательно должен быть столбцом 2.

$ command 1

4512438

$ input.txt

A
B
C
D

$ wanted_ouput.txt

A   4512438
B   4512438
C   4512438
D   4512438

Я думаю, что мне нужно сделать что-то вроде следующего. Я не уверен, как обозначить, что канал идет в новый столбец - эта команда awk просто добавит в столбец целые числа.

$ command1 | awk -F, '{$ (NF + 1) = ++ i;} 1' OFS =, input.txt> required_ouput.txt

1 Ответ

5 голосов
/ 14 января 2020

Не похоже, что вы действительно хотите передать значение в awk. Вместо этого вы хотите передать его в качестве параметра. Вы могли бы прочитать это из канала с чем-то вроде:

cmd1 | awk 'NR==FNR{a=$0} NR!=FNR{print $0,a}' - input.txt

, но это кажется гораздо более естественным:

awk '{print $0,a}' a="$(cmd1)" input.txt
...