extrair linha da mesma string

extrair linha da mesma string

Eu tenho uma tabela assim:

insira a descrição da imagem aqui

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

insira a descrição da imagem aqui

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|applesã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 grepresultado 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

informação relacionada