grepを使用して、複数の文字列に完全に一致する文字列を探しています。
約1,000万行10列の大きなデータファイルで次の3つの文字列を見つけたいとしましょう。次の正確な文字列を含むすべての行を見つけるために、ファイルをクエリしたいと思います。ありがたいことに、1つの列だけに「rs番号」があるので、列を指定する必要はありません:rs123 rs246 rs689653
次の式を試してみたところ、これらの文字列を含むすべてのオプションが返されました。場合によっては、「rs123456」のような行が表示されますが、完全に一致する行が必要な場合は次のようになります。
grep -E 'rs123|rs246|rs689653' queriedfile.txt
それから私は、と次の式を試してみました^
し、$
私のクエリにNOの一致をバック受け取った(と私はいくつかがある知っています)。
grep -E '^rs123$|^rs246$|^rs689653$' queriedfile.txt
-w
コマンドラインオプションを追加して、一致を単語全体に制限できます
$ printf 'rs123456\nrs246\n' | grep -wE 'rs123|rs246|rs689653'
rs246
またはワードアンカーを明示的に追加します
$ printf 'rs123456\nrs246\n' | grep -E '\b(rs123|rs246|rs689653)\b'
rs246
(あなたが接近していた^
と$
-しかし、それらは、あるライン-anchors)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加