sed - 在没有空格的单行中提取两个单词之间的单词

时间:2014-09-24 09:34:11

标签: unix sed

我需要在没有空格的情况下在一行中提取一个单词beetwen两个单词。

例如,我有这个文件web.xml:

<connection-url>jdbc:jtds:sqlserver://sql2012:1433/AAA_1</connection-url>
<connection-url>jdbc:jtds:sqlserver://sql2012:1433/BBB_1</connection-url>
<connection-url>jdbc:jtds:sqlserver://sql2012:1433/CCC_2</connection-url>

我需要提取AAA_1BBB_1CCC_2,因为它们位于1433/</connection-url>

的中间位置

1 个答案:

答案 0 :(得分:1)

通过sed,

$ sed 's~.*1433/\([^<]*\)</connection-url>.*~\1~' file
AAA_1
BBB_1
CCC_2

通过grep,

$ grep -oP '1433\/\K[^><]*' file
AAA_1
BBB_1
CCC_2