<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'/>
ベストアンサー1
file
XML文書内のすべてのノードのすべての属性値を抽出するには、以下を使用できます。source
xmlstarlet
xmlstarlet sel -t -v '//source/@file' -nl file.xml
または、次のvirsh
コマンドを読んでください。
virsh dumpxml --domain "test1" | xmlstarlet sel -t -v '//source/@file' -nl
パイプラインの問題は、最後のコマンドが正しい文字列(他の文字列を除く)を含むすべての行をsed
削除しようとしていることです。<source
あなたの入力にはそのような行はありませんsed
。