Как проверить, присутствует ли список ссылок в текстовом файле в папке проекта с помощью скрипта bash

#bash #shell

Вопрос:

У меня есть требование для поиска списка URL-адресов/ссылок в папке моего проекта, если у нас есть соответствующий им тест. ниже приведен мой сценарий. Теперь это неправильно печатается, какая ссылка отсутствует в папке. Где я здесь ошибаюсь? Пожалуйста, помогите

 #!/bin/bash  echo "Hi this is a test" file='deeplinks.txt' while read line; do  grep -sr "$line" /Users/id856795/myproximus-rn/src 2gt;/dev/null || echo $line done lt; $file   

мой deeplinks.txt файл выглядит так:

 myproximus://dashboard  myproximus://products  myproximus://products/MV  myproximus://products/MV/ordering/[MPCUID of a Mobile option] myproximus://products/MV/settings  myproximus://products/TV  myproximus://products/TV/ordering/[MPCUID of a TV option] myproximus://products/TV/settings  myproximus://products/FI  myproximus://products/FI/settings  myproximus://products/EP  myproximus://payments  myproximus://rewards    

Комментарии:

1. Пожалуйста, отредактируйте свой пост, а не в комментарии.

2. привет @tshiono, я внес изменения

3. Спасибо. Кстати, что за косые черты в конце строк? Если исходный файл содержит его как есть, он не болтает.

4. Кроме того, можете ли вы привести пример строк /Users/id856795/myproximus-rn/src ? Кроме того, пожалуйста, подробнее расскажите об this is not printing correctly этом . Каков ваш ожидаемый результат и что вы получаете сейчас?

5. @tshiono ваш вопрос, связанный с обратной косой чертой, заставил меня подумать о том, чтобы удалить ее, и, следовательно, спасибо

Ответ №1:

Вы можете предоставить grep файл, содержащий шаблоны. Нет необходимости зацикливаться.

Я подозреваю, что неполные результаты связаны с наличием метасимволов регулярных выражений (т. Е. [ и ] ) во входных строках. Вы можете указать grep использовать сопоставление обычного текста.

 grep -F -f deeplinks.txt -sr /Users/id856795/myproximus-rn/src  

Комментарии:

1. Спасибо, что ответили. Я мог понять, почему сценарий не давал ожидаемого результата. Это было из-за обратной косой черты. Это не требовалось, и поэтому я удалил его, и теперь скрипт выдал желаемое.