1

単純なコマンドだと思いますが、解決策を見つけることができませんでした

タグ付きのファイルを作成したい(多くの行で区切られています)

File1

aaa
bbb
ded

次に、それらのTAGSを(1行ずつ)1つのファイルにgrepし、TargetFileと呼びます。

私がしたことは次のとおりです。

cat File1 | xagrs grep {} TargetFile

TargetFileではgrepを実行しません。どうすればいいですか?

現在使用mobaxtermしています

4

7 に答える 7

3
fgrep -f File1 TargetFile

猫の無用な使用がないことにも注意してください。

于 2011-08-05T04:10:33.100 に答える
1

いつものように、それを行うには複数の方法があります:

xargs -n 1 grep Targetfile -e < File
于 2011-03-10T12:03:35.843 に答える
1
cat File1 | xargs -I {} grep {} TargetFile
于 2013-05-08T08:08:50.300 に答える
0

ファイルのサイズに応じて、これはより高速に実行されます。

cat File1 | parallel -j0 grep {} TargetFile

File1 のタグの数が、並行して実行できるプロセスの数よりも少ない場合、TargetFile はディスクから 1 回だけ読み取られます。TargetFile がディスク キャッシュよりも大きい場合、これはおそらく良い考えです。

GNU Parallel の詳細については、紹介ビデオを参照してください: http://www.youtube.com/watch?v=OpaiGYxkSuQ

于 2011-03-10T14:09:11.450 に答える
-1

他のフォーラムで検索した後、答えを見つけたと思います

> for i in `cat File1` ; do grep $i TargetFile; done
于 2011-03-10T07:17:29.000 に答える
-1
cat File1 | while read tag; do grep $tag TargetFile; done
于 2011-08-05T11:33:37.503 に答える
-1
cat File1 | xagrs -i grep {} TargetFile
于 2013-05-03T05:15:52.597 に答える