私はbashで解決しようとしている次の問題があります。次のような情報のリストを含む2つの異なるファイル(file1、file2)があります。
HWI-1KL104:145:C18ANACXX:5:1101:1168:2164 4 * 0 0 * * 0 0 GTGCCTGAACTGGATGCATNGACAATGGGGAACATTACATATATAATACAAGGGAAACTCAAACGTTTCCNNNNNCAAGTATTTGACAGNNNNNNNNNNNN @B@DDFFFHHHHHIHIJIJ#3AFGHHJJJJIIJJIJIIIJJJJJJJGIIJIJJJIJIJJJJIJJI=@EED#####,,5=;ADDFEEDDD############
表示された文字列は、単一の行を表します。私がそうするならそれを意味する:
grep "HWI-1KL104:145:C18ANACXX:5:1101:1168:2164" file1
私の出力は上記の文字列です。HWI- 1KL104 :145:C18ANACXX:5:1101:1168:2164は私の回線のIDを表します
さまざまなIDを持つこのような数百万行(最大8GBのtxtファイル)を想像する必要があります
私がしなければならないことは:
file2に存在するfile1に存在するIDを検索します
file2の一致した行を、IDと次の情報のみを含む新しいファイルに保存します。
HWI-1KL104:145:C18ANACXX:5:1101:1196:2120 CCCCTTCTCCAGGGGACCANGTATGTTTCTCTTATGGTCCTCCTTGTTTACTAGCTTCTCTGGCAGTGAGATTGTAGGCTGGTAATCCTTTACTCNNTNNN CCCFFFFFHHHHHJJJJJJ#4CDEEDCDDDDDC ######
したがって、4 * 0 0 * * 0 0で表されるものを破棄します(これは、長さに関しては固定されていますが、コンテンツでは固定されていません。つまり、3 * 1 0 * * 0 1などになる可能性があります)。
したがって、私のfile1は、見つけてfile2に保存したいIDの一種の「参照」を表しています。
説明するのはとても難しいです。私がやりたいことをご理解いただければ幸いです。
はうまくいくはずだと思いますが、行内のいくつかの情報だけを調べて別のファイルと比較するgrep
方法がわかりません。grep