txtファイルから検索し、各結果を新しいファイルから検索

txtファイルから検索し、各結果を新しいファイルから検索

文脈上のフォローアップは次のとおりです。txtファイルで検索し、新しいtxtファイルとして印刷します。いくつかの追加の合併症があります。

2つのtxtファイルがあります。最初のファイルはdata.txtファイルで、2000行を超える行が含まれており、その中にあるデータは次のとおりです。

alpha
hmld 573
otndgd 29
fidnt 1962

beta
jdkrshm 2
adny 14
urmekhjf 6893
...

2番目のファイルはvalue.txtです。

value.txtの値のリストの1つを含むすべての行を検索して(新しいtxtファイルから)印刷したいと思います。

dn
hm
sf

、result1.txtと同じ(ヘッダーは「alpha」に似ています):

fidnt 1962 alpha
adny 14 beta

result2.txtに似ています:

hmld 573 alpha
jdkrshm 2 beta

私のシステム:Ubuntu

ありがとう

ベストアンサー1

もう一度申し上げますが、awkあなたの友達はここにいます:

awk '
  !values_processed {
    result[$0] = "result"FNR".txt"; next
  }
  !NF {FNR=0; next}
  FNR==1 {header=$0; next}
  {
    for (value in result)
      if (index($0, value))
        print $0, header > result[value]
  }' values.txt values_processed=1 data.txt

と同じ方法を使用してください。前の質問への回答ただし、ファイル行の値のリストは、行番号に基づいて各値の出力ファイル名を記録する連想配列にインポートされ、部分文字列検索を実行するために一致するのではなくvalues.txtusingを使用して検索されます。values.txtdata.txtindex()/regex/

おすすめ記事