同じ文字列から行を抽出する

同じ文字列から行を抽出する

次の表があります。

ここに画像の説明を入力してください。

3番目の列に2つの文字列を含むファイル:applepotato

私はこれを得るためにリンゴとジャガイモと呼ばれる文字列を含むタイトルとすべての行を抽出したいと思います。

ここに画像の説明を入力してください。

ありがとう

答え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単語の境界です。したがって、これは「グラップル(フック)」などの単語をフィルタリングします。 :) もう1つの複雑な解決策は、A、B、C...がタブで区切られていると仮定します\t

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

関連情報