我必須更新配置文件中的特定行。我需要更新的路線如下。我想用SERVICE_NAME = NewVaule更新字段SERVICE_NAME = OriginalValue。不幸的是,'OriginalValue'不是一個固定的字符串。它由字母(上和下),數字和句點組成。使用sed/awk或其他工具從bash腳本更新配置文件中的一行
此外,SERVICE_NAME在幾行上,我只想更新其中包含jdbc_url的行。
我試過的項目在下面,但我只需要替換到第一個括號。
sed -i '/s_apps_jdbc_connect_descriptor/s/SERVICE_NAME.*)/SERVICE_NAME=NewValue/' work.xml
我不確定如何繼續。唯一的要求是命令可以從bash執行,並使用合理Linux發行版中的工具。
<jdbc_url oa_var="s_apps_jdbc_connect_descriptor">jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=myhostname.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=OriginalValue)))</jdbc_url>
這是關於那樣簡單'sed'命令得到。你甚至不能靠近嗎? – Barmar
添加上下文:SERVICE_NAME在幾行上,我只想更新其中包含jdbc_url的行。 – Rajesh
把這個問題。 Tha的解決方案是使用一個地址表達式來匹配's ///'命令之前的上下文。 – Barmar