Соответствие регулярному выражению в сценарии оболочки
465
monster
Вот фрагмент из моего скрипта -
regex="<version>([0-9]*)\.([0-9]*)\.([0-9]*)([^<]*)<\/version>.*" #some unrelated lines of code echo $(grep -m 1 "<version>" $1) if [[ $(grep -m 1 "<version>" $1) =~ $regex ]] then main_version = "$" feature_version = "$" patch_version = "$" tag = "$" else echo "$1: Version not Found" >&2 fi
Но это показывает мне следующий вывод -
<version>1.1.7-release</version> <!-- ABC version --> abc/xyz/pom.xml: Version not Found
Но, насколько я понимаю, regex
должен совпадать с выводом grep
(я повторил его для терминала для лучшей ясности). Так может кто-нибудь сказать, что я делаю не так?
Я пробовал это на файле, содержащем ваши материалы, и он соответствует ... каков ваш выпуск bash? (bash - версия)
tonioc 5 лет назад
0
Кроме того, что * точно * является выводом из `grep`? `echo $ (grep ...)` будет манипулировать выводом несколькими способами (на самом деле, `echo $ (somecommand)` почти всегда плохая идея). Попробуйте `grep ... | LC_ALL = C cat -vet` - команда `cat` преобразует различные обычно невидимые символы в видимые формы и добавляет« $ »в конец каждой строки, чтобы вы могли видеть, где они находятся.
Gordon Davisson 5 лет назад
0
Я обнаружил ошибку, она была вызвана `export -f custom_function`, чтобы использовать custom_function в` xargs` и, конечно же, фрагмент кода aboce был частью custom_funcion. спасибо, что уделили время
monster 5 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4