Как извлечь одно слово из вывода команды Linux? - PullRequest
0 голосов
/ 12 июня 2018

$ lsusb --verbose | grep "THRSL_C_C_V"

приводит к:
iManufacturer 1 THRSL_C_C_V3.07

Я хочу извлечь только слово THRSL_C_C_V3.07.

Я пытался lsusb --verbose | grep -w "THRSL_C_C_V".Ничего не показывало.

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

Попробуйте:

lsusb --verbose | grep -o "THRSL_C_C_V3\.07"

Параметры -o приводят только к совпадению текста, обратная реакция экранирует точку, что позволяет точно соответствовать запрошенному тексту.

0 голосов
/ 12 июня 2018

Используйте следующее: -

$ lsusb --verbose | grep "THRSL_C_C_V" |  awk '{print $NF}'

или

$ lsusb --verbose | awk '/THRSL_C_C_V/{print $NF}'

Здесь $ NF будет использоваться для последнего элемента вывода

0 голосов
/ 12 июня 2018

Вы можете использовать awk вместо grep:

lsusb --verbose | awk '/THRSL_C_C_V/{print $3}' 

Эта команда awk ищет строку с текстом THRSL_C_C_V, и с помощью print $3 мы обязательновыведите 3-й столбец совпавшей строки.

В качестве альтернативы вы можете использовать grep -o, например:

echo 'iManufacturer        1 THRSL_C_C_V3.07' |
grep -oE 'THRSL_C_C_V[^[:blank:]]*'

THRSL_C_C_V3.07
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...