Хотя я почти уверен, что это было охвачено, я не могу найти ничего конкретного. Когда я продолжаю свое путешествие по изучению bash, я продолжаю находить части, где я озадачен тем, почему все происходит так, как они делают.
Поиск и замена или просто соответствие подстрок в строках, скорее всего, одно из первых, что вы делаете при написании скриптов. Но, пытаясь придерживаться одного языка или набора инструментов, трудно сделать в bash, так как вы можете решить большинство проблем несколькими способами. Я прилагаю все усилия, чтобы оставаться на низком уровне с bash. Я столкнулся с проблемой, что мне нужно, чтобы кто-то объяснил мне.
Выполняя подстроку, поиск в bash с совпадением дает мне разные результаты в зависимости от регулярного выражения, которое я использую, и я не уверен, почему.
#!/bin/bash
Stext="Hallo World"
echo `expr "$Stext" : '^\(.[a-z]*\)'` # Hallo
echo `expr "$Stext" : '.*World'` # 11
Хотя оба ищут слово, я думаю, оба не возвращают то, что они находят. Зачем?