GNU/Linux >> Linux の 問題 >  >> Linux

あるファイルから別のファイルの単語を見つける方法は?

grep -f を使用できます :

grep -Ff "first-file" "second-file"

または完全な単語に一致する場合:

grep -w -Ff "first-file" "second-file"

更新: コメントによると:

awk 'FNR==NR{a[$1]; next} ($1 in a){delete a[$1]; print $1}' file1 file2

次のように grep を使用します:

grep -f firstfile secondfile

第二の選択肢

ファイル内の「予約済み」の単語がパターンとして扱われていることを指摘してくれた Ed Morton に感謝します。それが問題である場合 - そうである場合とそうでない場合があります - OP はパターンを使用しない次のようなものを使用できます:

ファイル「予約済み」

cat
dog
fox

およびファイル「テキスト」

The cat jumped over the lazy
fox but didn't land on the
moon at all.
However it did land on the dog!!!

awk スクリプトは次のようになります:

awk 'BEGIN{i=0}FNR==NR{res[i++]=$1;next}{for(j=0;j<i;j++)if(index($0,res[j]))print $0}' reserved text

出力付き:

The cat jumped over the lazy
fox but didn't land on the
However it did land on the dog!!!

第 3 のオプション

別の方法として、非常に簡単に実行できますが、bash ではより時間がかかります:

while read r; do grep $r secondfile; done < firstfile 

Linux
  1. Linuxでパーミッションをあるファイルから別のファイルにコピーまたは複製する方法

  2. ファイル内で最も頻繁に使用されるN個の単語を検索しますか?

  3. 最後のN行をあるファイルから別のファイルにコピーしますか?

  1. ある mysql データベースから別の mysql データベースにテーブルをコピーする方法

  2. Linux 端末から特定のファイルを見つけるにはどうすればよいですか?

  3. 別のshファイルからshファイルを実行する方法

  1. ファイル内で \n を grep する方法

  2. ある Git リポジトリから別のリポジトリにコミットをコピーする方法は?

  3. あるドライブから別のドライブにファイル システム階層全体をコピーする