cat файл или теги и xargs grep теги в файле - PullRequest
1 голос
/ 10 марта 2011

Я думаю, что это простая команда, но я просто не могу прийти к решению

Я бы хотел получить файл с тегами (разделенными множеством строк)

File1

ааа
bbb
дед

и затем объединить эти TAGS (строка за строкой) в один файл, назовем его TargetFile

Я сделал следующее:

cat File1 | xagrs grep {} TargetFile

Это не делает grep на TargetFile. Как я могу это сделать?

Я использую mobaxterm на данный момент

Ответы [ 7 ]

3 голосов
/ 05 августа 2011
fgrep -f File1 TargetFile

Обратите внимание также на отсутствие бесполезного использования кошки.

1 голос
/ 08 мая 2013
cat File1 | xargs -I {} grep {} TargetFile
1 голос
/ 10 марта 2011

как обычно, более чем один способ сделать это:

xargs -n 1 grep Targetfile -e < File
0 голосов
/ 03 мая 2013
cat File1 | xagrs -i grep {} TargetFile
0 голосов
/ 05 августа 2011
cat File1 | while read tag; do grep $tag TargetFile; done
0 голосов
/ 10 марта 2011

В зависимости от размера файлов, это будет выполняться быстрее:

cat File1 | parallel -j0 grep {} TargetFile

Если число тегов в File1 меньше, чем число процессов, которые вы можете запустить параллельно, тогда TargetFile будет только читатьсяодин раз с диска.Если TargetFile больше, чем ваш дисковый кеш, то это, вероятно, хорошая идея.

Чтобы узнать больше о GNU Parallel, смотрите вводное видео: http://www.youtube.com/watch?v=OpaiGYxkSuQ

0 голосов
/ 10 марта 2011

ну, я думаю, что нашел ответ после поиска на других форумах

> for i in `cat File1` ; do grep $i TargetFile; done
...