2015-10-03 3 views
0

У меня есть список токенов в текстовом файле и вы хотите использовать grep для получения строк из второго текстового файла, содержащего эти токены, но, похоже, возникают проблемы с доступом к переменной оболочки с grep :Использование переменной оболочки с grep

for n in `cat ./pos/1.txt` 
do 
cat dictionary.txt | grep "$n" 
done 

Я попытался $ п "$ п", $ {п}, "$ {п}",^$ {п}, и "^ $ {п}" ни один из них не кажется, работать.

Благодаря

+0

Почему бы вам не попробовать это? 'grep '$ n" dictionary.txt' –

+4

Я думаю, что все это было бы лучше написано как 'grep -f pos/1.txt dictionary.txt'. –

+0

Этот вопрос был перекрестно размещен в Unix + Linux: http://unix.stackexchange.com/questions/233714/using-a-shell-variable-with-grep – John1024

ответ

0

Вместо цикла по линиям, было бы лучше использовать -f флаг grep:

grep -f pos/1.txt dictionary.txt 

Это напечатает строки dictionary.txt, которые соответствуют рисункам в pos/1.txt.

0

выглядит следующим образом, что вы ищете:

for n in `cat 1.txt` 
do 
grep $n dictionary.txt 
done 
Смежные вопросы