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

  • Может ли awk использовать идентификаторы полей также для строк оболочки (переменных)?
  • Как сокращать / путь / в / файл в / p / t / файл
  • Как использовать sed для печати части строки, содержащей хеши (или любое альтернативное решение)?
  • Bash - ожидаемое целочисленное выражение
  • Стандарты для строк с двойными кавычками
  • Как совместить точную строку с помощью `sed`? Но не его часть.
  • Как правильно извлекать различные части `dirname` в сочетании с` find`?
  • Перепишите аргументы перед передачей их команде
  • One Solution collect form web for “Как проверить строку в строке с помощью оператора if?”

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

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

    Interesting Posts

    Как получить необходимую информацию, чтобы использовать unison и ssh для синхронизации файлов

    не может изменить фон моего экрана входа

    Кронтаб связан с производительностью сервера?

    LONux Mint не распознает / монтирует жесткий диск 160 ГБ

    ZFS: импорт zpool – отсутствующее устройство UNAVAIL

    Вертикальные версии

    Как разрешить «Нет протокола» для пользователя su

    Узнайте, какие исходные файлы ядра были использованы при компиляции ядра

    Захват экрана и вывод на видеоустройство

    Какое шифрование использует vim -x?

    Как убить упрямый процесс

    Как отключить бесполезные записи журнала аудита в dmesg

    Правила iptables слишком ограничительны; Веб-сервер Drupal не может получить доступ к репозиториям, ntp или даже веб-сайтам

    Bash: командная строка с необязательными аргументами

    Что следует учитывать при определении количества процессов для запуска на хосте приложения?

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