Как отфильтровать результаты grep?

Я новичок в написании сценариев. Поэтому я надеюсь, что это просто. Сценарий, который я пишу, используется для сбора системной информации и ее сохранения в виде файла HTML.

Когда я запускаю:

sudo lshw -short

он перечисляет все аппаратное обеспечение в системе.

Когда я запускаю:

sudo lshw -short | grep processor

он возвращает (точки представляют собой пробелы)

/0/4                        ...........................................processor................................................   AMD FX(tm)-6100 Six-Core Processor"

Мой вопрос состоит в том, как удалить все, что находится перед процессором. Или как мне отображать только то, что стоит после «процессора». Я попробовал несколько других опций для grep и попытался найти команду awk для работы, но я потерпел неудачу в моих попытках.

Если нужно больше информации, дайте мне знать.

2
задан 29 June 2014 в 03:01

1 ответ

В версиях grep, которые поддерживают PCRE (Perl Совместимое Регулярное выражение) расширение, можно сделать

sudo lshw -short | grep -Po 'processor\K.*'

Эти -o, говорит, чтобы только распечатать совпавший текст, и \K, модификатор заставляет что-либо с его левой стороны от него в совпавшем тексте быть исключенным из результата.

, Если Вы хотите также удалить какой-либо пробел после буквенного текста processor, можно сделать

sudo lshw -short | grep -Po 'processor\s*\K.*'
5
ответ дан 29 June 2014 в 03:01

Другие вопросы по тегам:

Похожие вопросы: