0

我有一个包含这些值的文件:-

<property name="india" column="delhi" />
<property name="austrelia" column="sydney" />
<property name="uae" column="dubai" />

现在我想在第一个“”中提取值。所以结果应该是: -

india
austrelia
uae

我正在使用 shell,我的正则表达式是 "(.*?)" 。但它同时选择了“”值。我只想要第一个。有人可以为此建议我正确的正则表达式。

4

2 回答 2

3

试试这个:

sed -r 's/^[^"]+"([^"]*)".*/\1/' file

用你的数据测试:

kent$  echo '<property name="india" column="delhi" />
<property name="austrelia" column="sydney" />
<property name="uae" column="dubai" />'|sed -r 's/^[^"]+"([^"]*)".*/\1/'
india
austrelia
uae
于 2013-02-07T12:33:47.623 回答
1
$ awk -F\" '{print $2}' file

顺便说一句,shell 可能不是解析 XML 的理想工具。

于 2013-02-07T12:35:00.507 回答