2012-06-25 102 views
-3

我正在創建一個腳本,我可以運行它只會問我常見的位置名稱......即SEC-DF1,它會從內部獲取該站點的IP腳本。我的問題是採取這一IP與腳本awk v。sed修改ipsec.conf

right=NEW_IP_ADDRESS 

我需要這個,所以我可以調用腳本,因爲我將是正確的經常變化的值進行檢測更換

right=IP_ADDRESS 

我一直在搞sed,直到有人提到awk ......這個東西有這樣的horrid文檔,我一直在我弄亂的測試文件上得到所有類型的錯誤或奇怪的結果。

+0

如果我理解正確的,你要編寫修改另一個腳本的腳本。這是正確的,還是我誤解? – thb

+0

我想將此命令放入要運行的腳本並修改一個ipsec.conf文件。 – Dan

+0

你有什麼嘗試?請[編輯你的問題](http://stackoverflow.com/posts/11194050/edit)顯示樣本之前和之後,並更詳細地解釋你想實現什麼。 – ghoti

回答

1

由於這是一個簡單的替換,我只想用SED:

sed -e 's/^right=[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/right=192.168.1.92/' filename 

這將在一行後跟一個IP地址的開始匹配right=,並與您所選擇的IP取代它。

0

這個命令會修改你的腳本:

NEW_IP_ADDRESS=101.102.103.104 sed -i "s/^(right=).*$/\\1$NEW_IP_ADDRESS/" script 
+0

這相當於'sed's/^(right =)。* $/\ 1 /'script'。 'NEW_IP_ADDRESS'的賦值不會修改傳遞給sed的參數。 –