2015-03-30 5 views
0

У меня есть переменная, которая заполняется из файла журнала. он захватывает имя хоста сервера для использования в распечатке awk. im, создавая файл CSV, который печатает MAC-адрес, номер порта, а затем имя хоста.печать переменной в AWK с выходом AWK для файла csv

здесь является то, что переменная

hostVar=$(awk '/#/' macAddress.log) 

это работает отлично то, что мне нужно, чтобы напечатать переменную в моем следующем операторе AWK так, что она печатает вар в последнюю очередь. ниже отлично работает и печатает MAC, HOST

grep -Ff masterList macAddress.log | awk '{print $2 "," $4}' >> output.csv 

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

grep -Ff masterList.csv macAddress.log | awk '{print $2 "," $4 "," $hostVar}' >> output.csv 

очевидно, что не работает, но мне нужно имя хоста в файле CSV рядом с номером порта (MAC затем порт Num затем имя хоста)

0011.2233.4455,Gi1/0,Switch1 

(switch1 того, что $ hostVar заполняется)

+0

Что вы ожидаете '$ test' равным? В настоящий момент AWK ищет переменную awk с именем «test» и не находит ее, поэтому по умолчанию она равна 0. Затем AWK смотрит на оператор $ и оценивает его как значение для всего ввода, потому что $ 0 равно всем входным данным. –

+0

извините, опечатка. все, что связано с $ test, должно быть $ hostVar –

ответ

0

Прямо сейчас $ hostvar пытается решить путем AWK. Попробуйте

awk '{print $2 "," $4 "," '$hostVar'}' 

использовать $ hostvar из bash. Одиночная кавычка, которая застревает в строках, в bash.

+0

, которое не работает. Мне нужно напечатать 2 совпадения, затем переменную. var фиксирует имя хоста, и мне нужно его распечатать еще 2 вывода. –

Смежные вопросы