Belirli özelliklere sahip xml dosyalarını arıyorum. Örneğin, aşağıdaki kalıbı içeren dosyalar:Unix komut satırından temel xml ayrıştırma işlemini yapmanın en kolay yolu
<param-value>
<name>Roles</name>
<description>some description</description>
<value>asdf</value>
</param-value>
Ve boyunca dosya adı çıktısını: Bu tür dosyalar için
<param-value>
<name>Hosts</name>
<description>some description</description>
<value></value>
</param-value>
, ben gibi, başka bir etiket değerini ayrıştırmak istiyorum "asdf" ile. Bunu komut satırından yapmanın en kolay yolu nedir? Sadece eşleşen dosyaları filtrelemek için -l seçeneği ile grep kullanarak ve sonra xargs kullanıyordum düşünüyordum
Bir yaklaşım Rolleri değerini ayıklamak için grep. Ancak, grep çok satırlı regex'lerle iyi çalışmaz. -Pzo seçenekleriyle yapılabileceğini gösteren başka bir soru gördüm, fakat davamda çalışmak için hiç şans yoktu. Daha basit bir yaklaşım var mı? Benim için
Böyle perl gibi bir kodlama dili kullanmak istemediğiniz belirli bir nedeni var mı? – Tom
Hayır, bir perl çözümü harika, tercihen kompakt bir tek liner olurdu, ancak yazmanın en iyi yolunu bilmiyorum. – jonderry
Sadece en temel araçlarla çalışan bir çözüm bulmak yararlı olacaktır, xmlstarlet, xpath ve perl'in xpath modülü, arama yapacağım sistemde yüklü değil. – jonderry