2012-02-21 59 views
0

我在bash中工作,主要是爲了讓我可以練習一下,並且我有一個字符串,我知道它與正則表達式[:blank:]+([0-9]+)[:blank:]+([0-9]+)[:blank:]+$SOMETHING相匹配,假設我沒有錯。 (空格,數字,空格,數字,空格,我之前定義過的一些字符串。)通過「匹配」,我的意思是它包含這種格式作爲子字符串。如何在bash中提取與特定正則表達式匹配的字符串的特定部分?

有沒有一種方法來設置兩個字符串的數字只有一個正則表達式匹配的特定變量?

回答

1

$BASH_REMATCH包含由[[完成的最新的正則表達式比較的組。

$ [[ ' 123 456 ' =~ [[:blank:]]+([0-9]+)[[:blank:]]+([0-9]+)[[:blank:]]+ ]] && echo "*${BASH_REMATCH[1]}*${BASH_REMATCH[2]}*" 
*123*456* 
+0

讓我們試試吧! (' >'$ [[$:SOURCE_STRING =〜[[:blank:]] +([0-9] +)[[:blank:]] +([0-9 ] +)[[:blank:]] + $ SOMETHING]]' – 2012-02-21 03:42:29

+0

你確定*你正在使用'bash'和'[['' – 2012-02-21 03:43:49

+0

呃,是嗎?我看不到我不會怎麼做be。我在第二行之後發佈的行是我的腳本中的實際行,我跟着'bash'教程,腳本以'#!/ bin/bash'開頭......剩下要說什麼? – 2012-02-21 03:53:39

相關問題