文脈上のフォローアップは次のとおりです。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.txt
usingを使用して検索されます。values.txt
data.txt
index()
/regex/