#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. Спасибо, что ответили. Я мог понять, почему сценарий не давал ожидаемого результата. Это было из-за обратной косой черты. Это не требовалось, и поэтому я удалил его, и теперь скрипт выдал желаемое.