awk не печатает значение переменной - PullRequest
0 голосов
/ 15 мая 2018

Я запрашиваю таблицы улья, которые дают мне многострочный вывод. Я хочу добавить значение переменной в начало каждой строки вывода. Я запускаю приведенную ниже команду, но значение переменной не подставляется:

var=case1
`hive -e "select date from table1 limit 5;" | awk -v b=$var 'print b $0'

Это дает мне следующий вывод:

b20180101
b20180202
b20180303
b20180404
b20180505

Я ожидаю вывода ниже:

case120180101
case120180202
case120180303
case120180404
case120180505

Что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Вы помещаете свой оператор печати в область условий awk вместо области действий:

awk -v b="$var" '{print b $0}'
0 голосов
/ 15 мая 2018

Следующие инструкции могут помочь вам в этом.

val="case1"
awk -v var="$val" '{print var $0}'  Input_file

ИЛИ

val="case1"
variable=$(your_command | awk -v var="$val" '{print var $0}')

Если вы хотите сохранить выходные данные в сам файл Input_file, добавьте > temp_file && mv temp_file Input_file в вышеприведенный код.

...