<source file='/home/anpham/Projects/vm-builder/30G'/>
我尝试使用 sed 命令从上面的输出中提取绝对路径,但输出不会修剪字符串。以下命令是我的尝试。
virsh dumpxml --domain "test1" | grep 'source file' | head -1 | sed '/^<source$/d'
输出仍然是:
<source file='/home/anpham/Projects/vm-builder/30G'/>
要提取XML 文档
file
中所有节点的所有属性的值source
,可以xmlstarlet
这样使用:virsh
或者,从您的命令中读取:您的管道的问题是最终
sed
命令尝试删除包含确切字符串的所有行<source
(仅此而已)。您的输入中没有这样的行sed
。在每个 UNIX 机器上的任何 shell 中使用任何 sed:
首先:您的 sed 命令将永远不会匹配仅包含单词的行之外的任何内容
source
。这是因为您将^
(begin of line) 放在 word 之前和$
(end of line) 之后source
。第二:不用grep和head也可以: