Понимание использования команды awk при передаче содержимого файла в нее - PullRequest
0 голосов
/ 09 июня 2018
cat LIST.txt | awk 'BEGIN { print "POSTNT" ;} { print "NT Id= \""$1"\" id=\""$2"\" "}' | abc

Просто чтобы все знали:

Здесь $1 - это фактически первый столбец из cat LIST.txt, а $2 - это второй столбец из этого файла.Столбцы должны быть разделены табуляцией.Это не вопрос, а информация.

1 Ответ

0 голосов
/ 12 июня 2018

Ваша команда

cat LIST.txt | awk 'BEGIN { print "POSTNT" ;} { print "NT Id= \""$1"\" id=\""$2"\" "}' | abc

может быть немного улучшена до

awk 'BEGIN { print "POSTNT" } { printf("NT Id=\"%s\" id=\"%s\"\n", $1, $2) }' <List.txt | abc

Это просто избавляет от cat и также использует printf вместо print.При awk используйте print для печати отдельных полей, как в

print "some data", $1, $2, "some other data", $4

. При этом будет напечатана запись с пятью полями.Поля будут разделены значением OFS (по умолчанию пробел), а запись будет завершена значением ORS (перевод строки по умолчанию).

Здесь, однако, вы форматируетесобственная строка для вывода, для которой используется printf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...