我有一个包含以下值的文件: -
<property name="india" column="delhi" />
<property name="austrelia" column="sydney" />
<property name="uae" column="dubai" />
现在我想在第一个“”中提取值。 结果应该是: -
india
austrelia
uae
我正在使用shell而我的正则表达式是“(。*?)”。但它选择了两个“”值。我只想要第一个。 有人可以建议我正确的正则表达式。
答案 0 :(得分: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
答案 1 :(得分:1)
$ awk -F\" '{print $2}' file
顺便说一下,shell可能不是解析XML的理想工具。