<source file='/home/anpham/Projects/vm-builder/30G'/>
Eu tentei usar o comando sed para extrair o caminho absoluto da saída acima, mas a saída não corta a string. Os comandos a seguir são minha tentativa.
virsh dumpxml --domain "test1" | grep 'source file' | head -1 | sed '/^<source$/d'
A saída ainda é:
<source file='/home/anpham/Projects/vm-builder/30G'/>
Para extrair o valor de todos os
file
atributos de todos ossource
nós em um documento XML, você pode usarxmlstarlet
assim:Ou, lendo seu
virsh
comando:O problema com seu pipeline é que o
sed
comando final tenta excluir todas as linhas que consistem na string exata<source
(e nada mais). Você não tem essas linhas na entrada parased
.Com qualquer sed em qualquer shell em cada caixa UNIX:
Primeiro: seu comando sed nunca corresponderá a nada além de uma linha que contém apenas a palavra
source
. Isso ocorre porque você coloca^
(início da linha) logo antes e$
(fim da linha) logo após a palavrasource
. Segundo: pode ser feito sem grep e head: