Newbie grep question… a saída é duplicada

1

Eu tenho me ensinado bash scripting e queria escrever um script que cria um arquivo txt com informações específicas de hardware. Eu percebi que 'grep' seria uma ótima ferramenta para extrair as informações que eu queria de / proc e outros lugares.

Meu problema é que a saída é duplicada. O que estou fazendo errado?

$ grep "Mhz" /proc/cpuinfo
cpu MHz     : 1200.000
cpu MHz     : 1200.000

$ cat /proc/cpuinfo | grep "MHz"
cpu MHz     : 1200.000
cpu MHz     : 1200.000

.... Eu entendo que os comandos acima não serão redirecionados para o meu arquivo txt. Eu estou tentando obter o comando para produzir o que eu quero antes de redirecionar.

    
por John Francis 25.11.2015 / 23:08

1 resposta

4

Você tem dois processadores, ou pelo menos dois núcleos, ou pelo menos dois segmentos. O Ubuntu os vê como dois processadores distintos e /proc/cpuinfo reflete isso.

Você pode limitar artificialmente isso apenas para extrair a primeira correspondência:

$ grep -m1 "[MG]Hz" /proc/cpuinfo
model name  : Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

Eu não entendo a segunda parte da sua pergunta. Se você quiser mostrar que e escrevê-lo em um arquivo, use tee :

$ grep -m1 "[MG]Hz" /proc/cpuinfo | tee testfile
model name  : Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

$ cat testfile 
model name  : Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz

Se você quiser apenas gravá-lo em um arquivo, basta redirecioná-lo com > . Grep outputs corresponde a STDOUT, então isso irá redirecionar bem.

    
por Oli 25.11.2015 / 23:11