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?