Como filtrar os resultados do grep?

2

Eu sou novo em escrever scripts. Então estou esperando que isso seja simples. O script que estou escrevendo é usado para coletar informações do sistema e salvá-las como um arquivo html.

Quando eu corro:

sudo lshw -short

liste todo o hardware em um sistema.

Quando eu corro:

sudo lshw -short | grep processor

retorna (os pontos representam espaços)

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

Minha pergunta é como remover tudo na frente do processador. Ou como eu só exibo o que vem depois do "processador". Eu tentei várias outras opções para o grep e tentei encontrar um comando awk para funcionar, mas falhei em minhas tentativas.

Se precisar de mais informações, me avise.

    
por emerikanbloke 29.06.2014 / 00:50

1 resposta

5

Nas versões de grep que suportam a extensão PCRE (Perl Compatible Regular Expression), você pode fazer

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

O -o diz para imprimir apenas o texto correspondente, e \K modifier faz com que qualquer coisa à sua esquerda no texto correspondente seja excluída do resultado.

Se você quiser também remover qualquer espaço em branco seguindo o texto literal processor , faça

sudo lshw -short | grep -Po 'processor\s*\K.*'
    
por steeldriver 29.06.2014 / 00:59