извлечь строку из той же строки

извлечь строку из той же строки

У меня есть такая таблица:

введите описание изображения здесь

и файл, содержащий 2 строки из третьего столбца, как: яблоко картофель

Я хотел бы извлечь заголовок и все строки, содержащие строки «яблоко» и «картошка», чтобы получить это

введите описание изображения здесь

Спасибо

решение1

С использованием awk:

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

С использованием sed:

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

В обоих случаях potato|appleпечатается строка номер 1 и все соответствующие ей строки.

решение2

Вот таблица txt еще раз в текстовом виде:

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

Хотя я мог бы придумать решение с низкой сложностью, я думаю, что оно немного хакерское :-) Предположим, что файл таблицы txt называетсяtable1

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

Это возьмет первую строку и добавит grepк ней результат. \bявляется границей слова. Таким образом, это гарантирует, что такие слова, как "grapple (hook)" будут отфильтрованы :) Другое более сложное решение предполагает, что A, B, C... разделены табуляторами \t:

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

Связанный контент