при использовании grep с find, получая ошибку типа "grep: незаконная опция" - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь прочитать записи из файла, и если строка доступна в каких-либо файлах, распечатайте этот файл. код:

while read line
do
find ./q/q*.q -type f -exec grep -ls $line {} +
donr< "file_name"

имя_файла имеет такие данные, как:

india
usa_k
in_va

во время исполнения я получаю grep: illegal option error

В то же время я хочу сохранить о / п поиска в переменной. Любая помощь

только в цикле, я хочу объединить $ line и найти o / p и direct в txt файле.

код примерно такой:

$line | o/p find >> missing.txt

В файле i / p, если у нас есть значение «ИНДИЯ», если это значение доступно в другом текстовом файле, тогда я хочу напечатать «Индия доступна в (имя файла)» и сохранить эту информацию в текстовом файле. это нам нужно сделать для всех значений ..

1 Ответ

0 голосов
/ 29 августа 2018

Поставьте -- перед своими именами в качестве терминатора конца опции, -e перед расширением "$line" и укажите это расширение. Это предотвращает чтение имен или строки поиска как параметров.

while IFS= read -r line; do
  find ./q/q*.q -type f -exec grep -l -e "$line" -- {} + |
    while IFS= read -r matched_file; do
      echo "$line is available in $matched_file"
    done
done <file_name >results.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...