UNIXで行を検索するためにgrepを使用するときに発生する問題[閉じる]

UNIXで行を検索するためにgrepを使用するときに発生する問題[閉じる]

約5000のパターン(行間隔)を含む.txtファイルを使用して、18000行を含む他のファイルから一致するものを検索しようとしています。これまで、私はインターネット上で見つけることができるすべてのタイプのgrepとawkを試しましたが、まだ機能していないので完全にパニックになりました。

以下は、各ファイルの一部のテキストです。

パターン.txt

rs2622590
rs925489
rs2798334
rs6801957
rs6801957
rs13137008
rs3807989
rs10850409
rs2798269
rs549182

余分なスペースや何もありません。

ファイル.txt

snpid hg18chr bp a1 a2 zscore pval CEUmaf
rs3131972       1       742584  A       G       0.289   0.7726  .
rs3131969       1       744045  A       G       0.393   0.6946  .
rs3131967       1       744197  T       C       0.443   0.658   .
rs1048488       1       750775  T       C       -0.289  0.7726  .
rs12562034      1       758311  A       G       -1.552  0.1207  0.09167
rs4040617       1       769185  A       G       -0.414  0.6786  0.875
rs4970383       1       828418  A       C       0.214   0.8303  .
rs4475691       1       836671  T       C       -0.604  0.5461  .
rs1806509       1       843817  A       C       -0.262  0.7933  .

file.txtはmedディレクトリから直接ダウンロードされます。

私はUNIXに初めて触れたので、どんな助けでも役に立ちます!

これはstackoverflowからコピーされました。推奨されるすべての方法を試しましたが、出力はまだ空です。テキストファイルに構文の問題や何かが欠けている可能性はありますか?

PS:私が試したこと:

grep -Fw -f Pattern.txt File.txt
fgrep -f Pattern.txt File.txt

FILENAME=$1
awk '{kount++;print   $0}' $FILENAME | fgrep -f - Pattern.txt

awk 'NR==FNR{pats[$0]; next} $2 in pats' Pattern.txt File.txt

答え1

GNU grepでこれを試してください:

grep -f Pattern.txt File.txt

関連情報