在配置文件的一行中获取数据库名称

Nic*_* G. 2 xml text-processing

我有这个 jdbc 文件行

<url>jdbc:oracle:thin:@192.168.1.70:1521:MYDBORA</url>
Run Code Online (Sandbox Code Playgroud)

我需要使用某种实用程序来捕捉MYDBORA零件,但它并不总是同名。我需要之间的部分1521:</url>

我只想要数据库的名称,不总是 5 个字符,而是介于1521:<url>

文件提取:

<url>jdbc:oracle:thin:@192.168.1.70:1521:MYDBORA</url>
Run Code Online (Sandbox Code Playgroud)

roa*_*ima 5

由于这是 JDBC 并且您正在处理一个 XML 文件,因此您可以使用它xmlstarlet来可靠地挑选出必要的元素,而无需考虑空格或其他不相关的格式

使用JDBC 文档中的一个示例,选择就<connection-url/>这么简单

xmlstarlet sel -t -v '//connection-url' -n config_file.xml
jdbc:oracle:thin:@%hostname%:%port%:%database sid%
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您需要使用<url/>而不是<connection-url/>因此相应地替换。然后你可以挑出最后一个冒号:分隔字段

xmlstarlet sel -t -v '//url' -n config_file.xml | awk -F: '{print $NF}'
MYDBORA
Run Code Online (Sandbox Code Playgroud)

  • @尼克G。这个困境似乎有一个明显的答案...... :-) (2认同)