2014-04-01 66 views
0

我想遞歸查找每個「foo.xml」文件,並在每個foo.xml上應用xslt bar.xsl並保存在原始foo.xml中。當我單獨運行以下命令時,它們工作。批量XSLT轉換,查找| xarg xsltproc

find . -name foo.xml
xsltproc -o foo.xml bar.xsl foo.xml

但是,當我管他們,沒有任何反應foo.xml。

find . -name foo.xml | xargs xsltproc -o foo.xml bar.xsl

我想我失去了一些東西簡單...謝謝,先進。

+0

以上應採取'/ bar.xsl'適用於'/some/directory/foo.xml '並輸出到'。/ foo.xml'。你說這不是正確的? – BroSlow

+0

@BroSlow它應該輸出到/some/directory/foo.xml(替換原來的)。但否則是正確的,這不會發生。 – Nathan

+0

如果將詳細'-v'選項添加到'xsltproc',會發生什麼? – BroSlow

回答

1

警告這些都顯然會覆蓋XML與改造作爲在問的問題。

隨着你想要做這樣的事情

find . -name foo.xml -print0 | xargs -I {} -0 xsltproc -o {} transform.xsl {} 

或用-exec

find . -name foo.xml -exec xsltproc -o {} transform.xsl {} \;