bash - varios - Formatee todos los archivos XML en un directorio y guárdelos en un subdirectorio
renombrar archivo linux (1)
El archivo llamado {}
que ve probablemente contenga todos los archivos formateados. La razón de esto es que la redirección que estás utilizando no es realmente una parte del comando que ve xargs
. La redirección es interpretada por el shell, entonces lo que hace es ejecutar
find . -maxdepth 1 -type f -iname "*.xml" | xargs -I ''{}'' xmllint --format ''{}''
y guarde la salida en el archivo llamado formatted/{}
.
Intenta usar la opción --output
de xmllint
lugar de la redirección:
... | xargs -I ''{}'' xmllint --format ''{}'' --output formatted/''{}''
También puede evitar llamar a xargs
utilizando la opción -exec
de find
:
find . -maxdepth 1 -type f -iname "*.xml" -exec xmllint --format ''{}'' --output formatted/''{}'' /;
xmllint
escribir un script que busque en un directorio, encuentre todos los archivos XML, ejecútelos a través de xmllint
y guarde los resultados formateados en un archivo del mismo nombre en un subdirectorio llamado formatted
. Aquí está el guión que tengo hasta ahora:
find . -maxdepth 1 -type f -iname "*.xml" | xargs -I ''{}'' xmllint --format ''{}'' > formatted/''{}''
Esto funciona, hasta cierto punto. El subdirectorio termina con un archivo, llamado "{}"
, que es solo el resultado del archivo final que se procesó a través de xmllint
. ¿Cómo puedo hacer que los archivos se escriban correctamente en el subdirectorio?