Проверьте, содержит ли переменная определенную текстовую строку bash - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу проверить, содержит ли содержимое $url v= где-либо после https://youtube.com/watch?.

Пример вывода (обратите внимание на присутствующие и отсутствующие экземпляры v=):

> https://youtube.com/watch?list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz&v=apdJBcDF6vA&index=2
URL allowed.

> https://youtube.com/watch?list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz&index=2
URL NOT allowed.

> https://youtube.com/watch?v=apdJBcDF6vA
URL allowed.

> https://youtube.com/v=apdJBcDF6vA
URL NOT allowed.

> https://youtube.com/watch?v=apdJBcDF6vA&list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz&index=2
URL allowed.

> https://youtube.com/watch?v=apdJBcDF6vA&list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz
URL allowed.

> https://youv=tube.com/watch?v=apdJBcDF6vA
URL NOT allowed.

> v=https://youtube.com/watch?v=apdJBcDF6vA
URL NOT allowed.

Я бы попробовал какой-нибудь код для тестирования, но, честно говоря, я не уверен, что использовать.

ОС - это macOS High Sierra 10.13.6, а bash версия - 3.2.57 (1)-release

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Если вы хотите получить идентификатор видео, это довольно просто сделать с помощью регулярного выражения.См. Как получить идентификатор видео YouTube с URL-адреса? или попробуйте поискать по имени 'regex, чтобы получить идентификатор видео YouTube'

Если вы не знаете его, рассмотрите возможность использования частей youtube-dl, они могут анализировать все возможные URL и иметь больше инструментов для выполнения многих задач.

0 голосов
/ 11 февраля 2019

Внутри двойных квадратных скобок оператор == поддерживает глобусы:

if [[ $url == 'https://youtube.com/watch?'*v=* ]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...