Поиск вывода curl для строки с Bash - PullRequest
0 голосов
/ 22 мая 2019

Попытка извлечь веб-страницу в виде строчной буквы, затем выполнить поиск в выходной строке для подстроки

Моя попытка:

  1 #!/usr/bin/env bash
  2
  3 URL="https://somesite.com"
  4 MOVIES_SOURCE="movies.txt"
  5 PAGE=`curl "$URL"` | tr '[:upper:]' '[:lower:]'
  6
  7 while IFS= read -r movie
  8 do
  9   FOUND="$($PAGE =~ "$movie")"
 10   echo $FOUND
 11   if [[ $FOUND ]]; then
 12    echo "$movie found"
 13   fi
 14 done < $MOVIES_SOURCE
 15

Когда я запускаю это, я получаю line 9: =~: command not found

Переменная $movie допустима и содержит каждую строку из movies.txt, но я изо всех сил пытаюсь выяснить это!

1 Ответ

1 голос
/ 22 мая 2019

Если вы хотите использовать сопоставление регулярных выражений в bash:

if [[ $PAGE =~ $movie ]]; then
    echo "$movie found"
fi

пример:

PAGE="text blah Avengers more text"
movie="Avengers"
if [[ $PAGE =~ $movie ]]; then
    echo "$movie found"
fi

дает:

Avengers found

Также: чтобы захватить вывод всей команды curl:

PAGE=$(curl "$URL" | tr '[:upper:]' '[:lower:]')
  • всегда предпочитайте $() над обратными чертами
  • вам пришлось обернуть всю команду для того, чтобы $PAGEсодержать выходные данные, в которых вы преобразовали строчные буквы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...