Не удалось извлечь команду fastboot с помощью awk

Я пишу короткий скрипт для сбора информации о телефоне Android с помощью fastboot.

С помощью следующей команды

    fastboot getvar product

Я могу получить возвращаемое значение следующим образом

    product: "name"
    Finished. Total time: 0.029s

Мне нужно только значение «имя» после строки «продукт:», поэтому я пытаюсь использовать «:» в качестве разделителя. Я пытаюсь использовать предложение из этой темы "Как извлечь определенную строку из блока текста и сохранить ее в строковых переменных?" с чем-то подобным

    fastboot getvar product | awk 'NR==1{print $2}'

Or

    fastboot getvar product | awk =F ":" '{print $2}'

Or

    fastboot getvar product | sed -n 's/.* //; 1h'

Возвращаемое значение всегда

    product: "name"
    Finished. Total time: x.xxxs

Я использую ОС Debian Rodete. Любые предложения приветствуются. Спасибо.


person Shawn    schedule 12.06.2019    source источник
comment
awk -F: 'NR==1{print $2}' должно работать.   -  person karakfa    schedule 12.06.2019
comment
Предположительно, awk 2 =F является опечаткой для -F, а sed 1h означает 1p?   -  person jhnc    schedule 12.06.2019


Ответы (1)


Похоже, что fastboot (что бы это ни было!) печатает вывод, который вы хотите проанализировать, в stderr, а не в stdout. Пытаться:

fastboot getvar product 2>&1 | awk 'NR==1{print $2}'`
person Ed Morton    schedule 12.06.2019
comment
Да, это так. fprintf(stderr, "%s: %s\n", label.c_str(), value.c_str()); - person jhnc; 12.06.2019