Использование ниже простых команд grep & AWK для соответствия имени хоста и идентификатора печати из файла CSV.Команда grep и AWK для чтения имени хоста и столбцов печати
Моя команда:
#!/bin/bash
host=`hostname`
/bin/cat /tmp/MasterInventory.csv | grep -i $host | awk -F, '{print $1}' > /opt/input_appProfile.id
Мой CSV Inventory:
Hostname App_ID
SercverTest345 12
Mytestserver01 17
Mytestserver02 19
Если CMD ищет Mytestserver02
он печатает APP_ID 17
& 19
, но на самом деле он должен печатать только 19
в соответствии с именем хоста
Пожалуйста, помогите мне решить эту проблему.
Почему вы писали 'awk -F,' если ваш файл csv не имеет запятой? – Aserre
Что-то вроде 'awk -v host =" Mytestserver01 "'$ 1 == host {print $ 2}'/tmp/MasterInventory.csv' должно работать для вашего случая кстати, но я думаю, что есть много дубликатов для вашего вопроса. – Aserre
Ваше решение будет соответствовать только имени узла _exact_. Его использование grep, кажется, указывает, что он хочет частичных матчей. Поэтому: 'awk -v host =" Mytestserver01 "'$ 1 ~ host {print $ 2}'/tmp/MasterInventory.csv' – cfromme