Как проверить строку в строке с помощью оператора if?

Я ожидаю, что результат будет ниже

$ ./test.sh Manifest.txt test/directory1/dir2/Main test/directory1/dir2/Main contains Main test/directory1/dir2/Main have string Main directory2/dir3 directory2/dir3 dont have string Main 

Я использую скрипт, как показано ниже.

 #!/usr/bin/ksh while IFS='' read -r line || [[ -n "$line" ]]; do for project in $line do echo $project if [[ "$project" =~ ^(Main)$ ]]; then echo "$project contain Main" exit 1 else echo "$project dont have Main" fi done done < "$1" 

Но это не возвращает ожидаемый результат.

Что дает результат как

 test/directory1/dir2/Main test/directory1/dir2/Main dont have Main dir2/dir3 dir2/dir3 dont have Main 

  • Как извлечь данные из файла и построить имя файла из одного из значений
  • Проблема с sed в массиве, содержащем строки, содержащие пробелы
  • grep инвертированное соответствие по строке, удовлетворяющей шаблону
  • заменяя многострочную строку другой многострочной строкой, используя sed
  • Поиск и удаление строк, содержащих несколько шаблонов в файле
  • Поддерживает ли bash обратные ссылки при расширении параметров?
  • Добавить (изменить) каждый элемент массива через расширение параметра (т. Е. Без printf)?
  • Разбор JSON на оболочке
  • One Solution collect form web for “Как проверить строку в строке с помощью оператора if?”

    Регулярное выражение ^(Main)$ будет сопоставлено с полной строкой в $project . Кажется, это путь. Проблема в том, что если $project является именно Main , сравнение не удастся. Это связано с тем, что выражение привязано как к началу, так и к концу строки.

    Я считаю, что простое изменение выражения на Main$ будет разобраться в нем. Это будет соответствовать Main в конце строки в $project .

    Interesting Posts

    Пользовательский интерфейс зависает, когда я открываю много вкладок в браузере

    Изменить расположение файла sshd на CentOS?

    Как удалить RHEL из системы с двойной загрузкой?

    `crontab -e` иногда терпит неудачу с" Создание временного файла crontab не удалось "

    Модернизация сжимания до неудобства после остановки LTS

    Доля Samba открыта для всех

    Почему я не вижу страницу XAMPP в Linux Mint?

    Как использовать быструю замену для замены всех строк предыдущей команды?

    Какой файловый режим является символической ссылкой?

    Проблема с использованием awk

    Сравните два файла и совпадения печати в первом файле, добавив дополнительный столбец

    Доступ к сетевой службе NAT для динамического открытого IP-адреса из локальной сети

    Сортировка и резервное копирование файлов log4j

    Можно ли перенаправить все URL-адреса wikipedia в wikipedia zero через файл hosts?

    SSH аутентификация происходит с ошибкой либо с помощью открытого ключа или пароля

    Linux и Unix - лучшая ОС в мире.