Вопрос

I'd like to recursively find every "foo.xml" file and on each foo.xml apply the xslt bar.xsl and save over the original foo.xml. When I run the following commands, separately, they work.

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

But, when I pipe them, nothing happens to foo.xml.

find . -name foo.xml | xargs xsltproc -o foo.xml bar.xsl
Это было полезно?

Решение

Warning both of these will obviously overwrite the xml's with the transformation as asked in the question.

With you want to do something like

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

Or with -exec

find . -name foo.xml -exec  xsltproc -o {} transform.xsl {} \;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top