我在配置文件中有以下文本字符串:
jdbcService.oraclePool.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleserver.example.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=oracleserver55)))
我想用sed替换值“(HOST = oracleserver.example.com)”,而不用坚持=符号后面的文本。我尝试使用多个正则表达式,但找不到可用的正则表达式:
# sed 's/\((HOST=.*?)\)/(HOST=newvalue)/' customer_overrides.properties
jdbcService.oraclePool.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleserver.example.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=oracleserver55)))
# sed -E 's/\((HOST=.*?)\)/(HOST=newvalue)/' customer_overrides.properties | grep HOST=
jdbcService.oraclePool.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=newvalue)
# sed 's/\((HOST=.*[^)])\)/(HOST=newvalue)/' customer_overrides.properties | grep HOST=
jdbcService.oraclePool.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=newvalue)))
我正在努力:
谢谢你的帮助!
sed 's/HOST=[^)]*/HOST=foobar/' file
输出:
jdbcService.oraclePool.url = jdbc:oracle:thin:@ {DESCRIPTION = {ADDRESS = {PROTOCOL = TCP} {HOST = foobar} {PORT = 1521}} {CONNECT_DATA = {SERVER = DEDICATED} {SERVICE_NAME = oracleserver55}})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句