ver varios todos subdirectorios renombrar otro mover los listar directorios directorio crear copiar contenido consola carpeta archivos archivo bash find xargs xmllint

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?