переменные не могут использоваться в сопоставлении с шаблоном grep - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь использовать сценарий оболочки, чтобы получить строку из одного файла, а затем использовать ее, чтобы получить соответствующее предложение.

Сценарий выглядит так:

function find_str (){
    echo $1
    grep -e "\/$1" info.txt
}

for word in $(<./name.TXT); do
   #egrep -w "$word" info.txt  #this can't work either
   find_str $word
done 

Оказывается, find_str $word не может соответствовать какой-либо строке, например "/ WORD1 balabala"

Есть какие-нибудь предложения по поводу этого короткого сценария?

1 Ответ

0 голосов
/ 11 сентября 2018

Что такое часть "/ $ 1"?Вы ищете буквальные косые черты?И нужна ли вам функция?

$ cat > info.txt
testing 123 dog
nothing matches a catalyst
doggerel is not poetry
my cat is a maine coone

$ cat > name.txt
dog cat

При использовании -w и gnu grep перечислены только строки с соответствующими целыми словами:

$ for word in $(<name.txt); do grep -w "$word" info.txt; done
testing 123 dog
my cat is a maine coone

Без флага -w все строки, содержащиесовпадение перечислены:

$ for word in $(<name.txt); do grep "$word" info.txt; done
testing 123 dog
doggerel is not poetry
nothing matches a catalyst
my cat is a maine coone
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...