我將以下 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>