Передача файла с несколькими шаблонами в grep - PullRequest
1 голос
/ 26 октября 2010

Допустим, у нас есть два файла.

match.txt : файл, содержащий шаблоны для сопоставления:

fed ghi
tsr qpo

data.txt : файл, содержащий строки текста:

abc fed ghi jkl
mno pqr stu vwx
zyx wvu tsr qpo

Теперь я хочу выполнить команду grep, которая должна возвращать первую и третью строку из data.txt :

abc fed ghi jkl
zyx wvu tsr qpo

... потому что каждая из этих двух строк соответствует одному из шаблонов в match.txt .

Я пробовал:

grep -F -f match.txt data.txt

но это не дает результатов.

grep info: GNU grep 2.6.3 (cygwin)
Информация об ОС: Windows 2008 R2

Обновление: fix должен использовать эту команду: tr -d "\r" <match.txt | grep -F -f - text.txt

Похоже, что grep неправильно учитывает окончания строк Windows (CR / LF) для файлов соответствия, представленных ему через флаг -f.

1 Ответ

2 голосов
/ 26 октября 2010

Я просто попробовал именно тот пример, который вы привели, и он сработал, как и ожидалось.

[~] $ grep -F -f match.txt data.txt 
abc fed ghi jkl
zyx wvu tsr qpo

Можете ли вы дать больше информации? Какую ОС вы используете? Какая версия grep? Какие окончания строк содержат ваши входные файлы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...