我将以下 grep 命令通过管道传输到 sed 中,以查找元素名称属性并将 sed 结果存储到名称变量中。
name=$(grep -E "<element.*name=.*/>" "$F" | sed -e "s/.*<element.*name=\(.*\)\/>.*?/\1/")
样本数据 -
<element name="Barium"/>
期望输出 -
Barium
实际产量 -
<element name="Barium"/>
我有点困惑如何使用 sed 命令来删除多余的部分。
(我知道 xmllint 可以使这变得简单,但不能用它来做这个)
答案1
你不需要 sed 来实现这一点:
grep -Po '(?<=<element name=")[^"]+' <file>
或者
grep -Po '<element name="\K[^"]+' <file>