Если оно не настроено явно на хосте, имя хоста обычно получают через DHCP. Вы можете проверить конфигурацию и файлы журнала вашего DHCP-клиента, чтобы убедиться, что это так.
Использование PCRE -с включенными grep
реализациями:
grep -Po '(^|[,])KEY1:\K[^,]*'
или egrep
иcut
:
grep -Eo '(^|[,])KEY2:[^,]*' | cut -d: -f2-
Для обоих методов значение не может содержать запятую.
Если у вас был правильный json
, например.
{ "KEY1":"VALUE1", "KEY2":"VALUE2", "KEY3":"VALUE3" }
можно использоватьjq
:
$ jq.KEY2
"VALUE2"
$ jq -r.KEY2
VALUE2
С обычным grep
при условии, что ЗНАЧЕНИЕ не содержит двоеточия:
grep -o 'KEY2:[^,]\+' | grep -o '[^:]\+$'
Для поиска только значения
printf '%s\n' "$myString" | grep -Po "(?<=KEY2:)[^,]*"
или
grep -Po "(?<=KEY2:)[^,]*" <<< "$myString"
Используйте awk, чтение ключа :пара значений в качестве записи, чтение ключа, значение в качестве 1-го и 2-го поля.
awk -v RS=' *, *' -v FS=' *: *' '$1=="KEY2"{print $2}' <<<$str
-v RS=' *, *'
установить разделитель записи на ,
и окружающее пространство -v FS=' *: *'
установить разделитель полей на :
и окружающее его пространство '$1=="KEY2"{print $2}'
вывести значение, если ключ найден. измените «KEY2» на желаемое значение ключа.