cat файл или теги и xargs grep теги в файле

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

Я хотел бы кошку файл с тегами (разделенные многими строками)

File1

ааа
БББ
Ded

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

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

cat File1 | xagrs grep {} TargetFile

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

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

7 ответов

fgrep -f File1 TargetFile

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

cat File1 | xargs -I {} grep {} TargetFile

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

xargs -n 1 grep Targetfile -e < File

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

cat File1 | parallel -j0 grep {} TargetFile

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

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

cat File1 | xagrs -i grep {} TargetFile

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

> for i in `cat File1` ; do grep $i TargetFile; done
cat File1 | while read tag; do grep $tag TargetFile; done
Другие вопросы по тегам