雖然我幾乎可以肯定這已經覆蓋了,我似乎無法找到具體到這樣的東西。當我繼續我的學習狂歡的旅程時,我一直在尋找令我感到困惑的部分,爲什麼事情會以他們的方式發生。使用匹配查找字符串中的子只慶典
搜索並替換或只是字符串匹配的子字符串是最有可能的編寫腳本時,你首先要做的事情之一。但是,試圖堅持單一語言或一組工具在bash中很難做到,因爲您可以通過多種方式解決大多數問題。我正盡我所能,儘量保持儘可能低的水平與bash。我遇到了一個麻煩,我需要有人向我解釋。
這樣子串與匹配的bash搜索給了我不同的結果取決於正則表達式我用,我不知道爲什麼。
#!/bin/bash
Stext="Hallo World"
echo `expr "$Stext" : '^\(.[a-z]*\)'` # Hallo
echo `expr "$Stext" : '.*World'` # 11
雖然這兩個搜索詞,我認爲,既沒有返回他們所發現。爲什麼?
感謝簡單的解釋@jcollado :)我用你提供的文檔,但不知何故沒有得到這個括號功能。 Bash腳本指南不太容易消化。 – 2012-03-07 08:21:31
由於這個問題是關於[tag:bash],所以更喜歡使用* builtin * regex作爲[@kev建議](http://stackoverflow.com/a/9602260/1765658)而不是* fork到'/ usr/bin/expr' *! – 2015-02-27 23:05:29