Как проверить строку в строке с помощью оператора 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 

One Solution collect form web for “Как проверить строку в строке с помощью оператора if?”

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

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

  • Выполнение нескольких команд sed в одних и тех же файлах одновременно
  • Добавление ведущих символов перед строкой с использованием printf или echo
  • Как я могу добавить и добавить к каждому члену массива?
  • Строки - Извлечь версию файла Рекурсивный
  • У меня есть многострочная строка, которую мне нужно перебрать, но я не использую bash. Совет?
  • Как я могу использовать sed, чтобы отрезать строку от строки?
  • Как совместить точную строку с помощью `sed`? Но не его часть.
  • Извлечение подстроки из переменной среды
  • Как использовать grep и вырезать скрипт для получения URL-адресов веб-сайтов из файла HTML
  • grep для переменной
  • Как правильно извлекать различные части `dirname` в сочетании с` find`?
  • Interesting Posts

    Как получить экран входа в систему через VNC в Oracle Linux?

    LD_PRELOAD или аналогично предупреждать пользователя об изменениях в файле?

    пользователь существует при попытке добавить пользователя в группу systemd-journal.

    как использовать \ n (и) \ n как разделитель в awk

    Как добавить программное обеспечение в список под «open with» другими приложениями в Linux Mint 16?

    Linux dump (8) ничего не выводит

    пытаясь написать простой скрипт diff, чтобы сравнить 2 файла, а затем mv их в каталог

    Могу ли я писать на одном и том же ресурсе NFS из нескольких ОС?

    Показывать календарь на рабочем столе через виджет?

    Устранение неполадок при установке или загрузке в Ubuntu или Fedora с использованием живого USB или DVD на новом Lenovo E31

    Почему автоматические обновления не отправляются по электронной почте?

    Является ли набор макросов mdoc доступным для систем, отличных от BSD, по умолчанию?

    Поиск X-терминала с правильной обработкой размера окна

    Переименуйте первую часть нескольких файлов с помощью mv

    Показать адресную строку w. полный путь в Наутилусе вместо барашек

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