次のようなパターンの改行で区切られたリストを含むファイル(patterns.txt)があります。
AAAA........
....CCCC....
........YYYY
ATCC
私が検索しているファイル(table.txt)には、次のように表示されます(サイズは120GB)。
ZZZZAAAAGTGT 0 1 12
AAAAGTGTAAYY 0 9 1
GGGGTTTTCCCC 1 0 0
HHHHHHHHYYYY 1 8 0
AAATCCCHHHHH 0 0 1
次のgrepコマンドを使用しています。
grep -f patterns.txt table.txt
これにより、私の例のすべての行が返されます。ただし、grepに最初の12文字だけを表示させることができれば、1行目と3行目は返されません(これは望ましいことです)。
このgrepは、より大きなプログラムの一部です。これは、パターンがファイルから取得される必要があることを意味します。ただし、必要に応じてファイルの内容を変更できます。
すべてのドットをキャラクタークラス[ACGTHY]に置き換えることを考えていました。これは、パターンAAAA........が次のようになることを意味します。
AAAA [ACGTHY] [ACGTHY] [ACGTHY] [ACGTHY] [ACGTHY] [ACGTHY] [ACGTHY] [ACGTHY]
これにより、望ましい結果が得られるはずですが、かなり遅いようです。これを行うためのより良い方法はありますか?
編集:ドットを\Sに置き換えることも検討していました。