У меня есть рекурсивная структура каталогов, содержащих некоторые foo
файлы, которые я хочу преобразовать в bar
файлы с помощью таблицы стилей XSLT 1.0. У меня есть:
dir
|-- subdir
| |-- file1.foo
| |-- file2.foo
| |-- file3.foo
И я хочу получить:
dir
|-- subdir
| |-- file1.foo
| |-- file1.bar
| |-- file2.foo
| |-- file2.bar
| |-- file3.foo
| |-- file3.bar
Чтобы записать базовое имя файлов без расширения, я попытался:
$ find . -type f -exec java -jar C:/saxon6-5-5/saxon.jar -o $(basename {} .foo).bar {} stylesheet.xsl \;
а также
$ find . -type f -exec java -jar C:/saxon6-5-5/saxon.jar -o `basename {} .foo`.bar {} stylesheet.xsl \;
Оба с одинаковым результатом:
dir
|-- subdir
| |-- file1.foo
| |-- file1.foo.bar
| |-- file2.foo
| |-- file2.foo.bar
| |-- file3.foo
| |-- file3.foo.bar
Похоже, команда basename не работает. Что я делаю не так?
-exec sh -c
в моем единственном лайнере. Однако я не знаю, как совместитьsh -c
сjava -jar
. - person msoutopico   schedule 06.06.2015