![extrair linha da mesma string](https://rvso.com/image/36017/extrair%20linha%20da%20mesma%20string%20.png)
Eu tenho uma tabela assim:
e um arquivo contendo 2 strings da terceira coluna como: apple batata
eu gostaria de extrair o cabeçalho e toda a linha que contém a string maçã e batata para obter isso
obrigado
Responder1
Usando awk
:
awk 'FNR == 1 || /potato|apple/'
Usando sed
:
sed -n '1p; /potato\|apple/p'
Em ambos os casos, a linha número 1 e quaisquer linhas correspondentes potato|apple
são impressas.
Responder2
Aqui está a tabela txt novamente em texto simples:
A B C D E
21 63 apple yellow 5
23 69 lemon green 6
45 135 orange yellow 7
67 201 mango green 4
54 162 potato maroon 5
Embora eu pudesse pensar em uma solução com baixa complexidade, acho que é um pouco hackeado :-) Supondo que o arquivo txt da tabela seja chamadotable1
$ head -1 table1 && grep '\b\(potato\|apple\)\b' table1
Isso pegará a primeira linha e anexará o grep
resultado a ela. \b
é um limite de palavra. Portanto, isso garantirá que palavras como "grapple (hook)" sejam filtradas :) Outra solução mais complexa assumirá que A,B,C... são separados por tabuladores \t
:
$ grep '\(\b\(potato\|apple\)\b\|\([A-Z]\|\(\t\|\n?$\)\)\)' table1