extraer línea de la misma cadena

extraer línea de la misma cadena

Tengo una mesa como esta:

ingrese la descripción de la imagen aquí

y un archivo que contiene 2 cadenas de la tercera columna como: manzana papa

Me gustaría extraer el encabezado y todas las líneas que contienen la cadena manzana y papa para obtener esto.

ingrese la descripción de la imagen aquí

gracias

Respuesta1

Usando awk:

awk 'FNR == 1 || /potato|apple/'

Usando sed:

sed -n '1p; /potato\|apple/p'

En ambos casos, potato|applese imprimen la línea número 1 y cualquier línea que coincida.

Respuesta2

Aquí está la tabla de texto nuevamente en texto plano:

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

Aunque se me ocurre una solución de baja complejidad, creo que es un poco complicada :-) Suponiendo que el archivo txt de la tabla se llametable1

$ head -1 table1 && grep '\b\(potato\|apple\)\b' table1

Esto tomará la primera línea y greple agregará el resultado. \bes un límite de palabra. Así que esto asegurará que palabras como "garra (gancho)" se filtren :) Otra solución más compleja supondrá que A,B,C... están separados por tabuladores \t:

$ grep '\(\b\(potato\|apple\)\b\|\([A-Z]\|\(\t\|\n?$\)\)\)' table1

información relacionada