cat um arquivo para mostrar a primeira linha e o valor do grep questionado [duplicado]

1

Eu tenho esta estrutura a seguir no arquivo.txt

NTL|OPC|RN1|CNL|NUE|NUF|TPB|EIP
11212455464       |16384|55320|     |2799819E405       |                  |2|                                                  
32545687784       |16384|55320|     |1194155B581       |                  |2|                                                  
54565487788       |16384|55321|     |8599132D051       |                  |2|                                                  
23154688789       |4013|55115|11529|163624D585        |16D7620595        |1| 
...

e eu quero esse resultado (o título mais o valor consultado)

NTL|OPC|RN1|CNL|NUE|NUF|TPB|EIP
23154688789       |4013|55115|11529|163624D585        |16D7620595        |1| 

Eu tentei algo assim

head -1 file.txt | grep 23154688789

mas não funciona.

    
por hadesungod 17.08.2018 / 19:11

4 respostas

2

Se você pode usar sed , pode imprimir a linha 1 e qualquer linha que corresponda a

sed -n -e '1p;/23154688789/p' file.txt

-n dirá para não imprimir a saída, a menos que seja direcionado para, 1p diz a linha de impressão 1 e /23154688789/p imprime qualquer linha que corresponda a esse padrão

    
por 17.08.2018 / 19:14
1

No seu código, substitua "|" com ';' head dá-lhe a primeira linha e canaliza-la para o grep faz com que grep busque apenas na primeira linha. Você precisa de algo assim:

head -n 1 file.txt ; grep 23154688789 file.txt
    
por 17.08.2018 / 19:15
1

Assumindo que a linha somente começando com "NTL" será a linha de cabeçalho, um único grep pode ser usado para conseguir isso.

$ grep -E '^NTL|23154688789' file.txt
NTL|OPC|RN1|CNL|NUE|NUF|TPB|EIP
23154688789 |4013|55115|11529|163624D585 |16D7620595 |1| . . .
$
    
por 17.08.2018 / 19:35
1

O comando awk permitirá isso. Aqui nós emitimos a linha se o número do registro ( NR ) for 1 ou se obtivermos uma correspondência no primeiro campo:

awk -v id=23154688789 'NR==1 || $1==id'

Resultado

NTL|OPC|RN1|CNL|NUE|NUF|TPB|EIP
23154688789       |4013|55115|11529|163624D585        |16D7620595        |1|
    
por 17.08.2018 / 19:55