es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Divide y escribe los archivos con AWK – Bash.

INPUT_FILE.txt en c:\Pro\usr\folder1

ABCDEFGH123456
ABCDEFGH123456
ABCDEFGH123456
BBCDEFGH123456
BBCDEFGH123456

utiliza el siguiente comando AWK en el script .SH que se ejecuta desde c:\Pro\usr\folder2 para dividir el archivo en varios archivos txt con una extensión de _kg basado en los primeros 8 caracteres.

awk '{ F=substr($0,1,8) "_kg" ".txt"; print $0 >> F; close(F) }'  ' "c:\Pro\usr\folder1\input_file.txt" 

esto funciona bien, pero los archivos se están escribiendo en la ubicación principal donde se encuentra el bash. ¿Cómo puedo redirigir los archivos creados a otra ubicación como c:\Pro\usr\folder3?

Gracias

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para redirigir los archivos creados a otra ubicación como c:\Pro\usr\folder3, puedes modificar el comando AWK en el script .SH de la siguiente manera:

    { 
        F="c:\\Pro\\usr\\folder3\\" substr($0,1,8) "_kg.txt";
        print $0 >> F; 
        close(F);
    }
    

    El comando anterior establece el valor de la variable F como la ruta que apunta a c:\Pro\usr\folder3 con el nombre de archivo basado en los primeros 8 caracteres y una extensión de _kg.txt. La instrucción print escribe la línea actual en el archivo apuntado por F. La instrucción close cierra el archivo.

Comments are closed.