2012-03-14 35 views
3

我想在bash中使用正則表達式在變量賦值行如何用正則表達式(bash)賦值變量?

例如,

oldip="14\.130\.31\.172" 
oldip_a="14.130.31.172" //How to use regex on this line. 

如何使用正則表達式來刪除$ oldip中的所有'\'?然後將新值分配給$ oldip_a。

你有什麼想法嗎?

回答

4

我相信你想使用字符串替換是這樣的:

oldip_a=${oldip//\\/} 

或者類似的東西......當然總會有一些逃避反斜槓的戰鬥!

一個更明顯的例子:

some_variable=${some_other_variable//replaceEachOfThese/withThis} 

搜索此頁面上的 「全部替換匹配」:

http://tldp.org/LDP/abs/html/string-manipulation.html 
+0

我認爲你有一個錯字(額外'/'末) - 應該是'oldip_a = $ {oldip // \\ /}' – 2012-03-14 06:18:22

+0

這就是爲什麼我扔了_some這樣的_...謝謝! – jahroy 2012-03-14 06:37:07

+0

沒問題。我會投票你的答案,但我跑出了日常投票! – 2012-03-14 06:40:31

2

這裏是你如何能做到這一點:

oldip="14\.130\.31\.172" 
oldip_a=`echo $oldip | sed 's/[\]//g'` 
echo $oldip_a 

輸出

14.130.31.172