scripts script reemplazar manejo lineas leer fichero extraer ejemplos comando columnas cadenas cadena buscar bash shell

bash - script - sed reemplazar/



Concatenar mĂșltiples archivos de texto en un solo archivo en Bash (9)

¿Cuál es la forma más rápida y pragmática de combinar todos los archivos * .txt en un directorio en un archivo de texto grande?

Actualmente estoy usando windows con cygwin, así que tengo acceso a BASH.

El comando de shell de Windows también estaría bien, pero dudo que haya uno.


¿Qué tal este enfoque?

find . -type f -name ''*.txt'' -exec cat {} + >> output.txt


El type comando de shell de Windows puede hacer esto:

type *.txt >outputfile

El comando type también escribe los nombres de archivo en stderr, que no son capturados por el operador de redireccionamiento (pero se mostrarán en la consola).


Esto agrega la salida a all.txt

cat *.txt >> all.txt

Esto sobrescribe all.txt

cat *.txt > all.txt


La forma más pragmática con el shell es el comando cat. otras formas incluyen,

awk ''1'' *.txt > all.txt perl -ne ''print;'' *.txt > all.txt


Puede usar la copy shell de Windows para concatenar archivos.

C:/> copy *.txt outputfile

De la ayuda:

Para adjuntar archivos, especifique un solo archivo para el destino, pero varios archivos para el origen (utilizando comodines o file1 + file2 + file3 format).


Solo recuerde, para todas las soluciones dadas hasta ahora, el shell decide el orden en que se concatenan los archivos. Para Bash, IIRC, eso es orden alfabético. Si el orden es importante, debe nombrar los archivos adecuadamente (01file.txt, 02file.txt, etc ...) o especificar cada archivo en el orden en que desea que se concatene.

$ cat file1 file2 file3 file4 file5 file6 > out.txt


Tenga cuidado, porque ninguno de estos métodos funciona con una gran cantidad de archivos. Personalmente, utilicé esta línea:

for i in $(ls | grep ".txt");do cat $i >> output.txt;done


todo eso es desagradable ...

ls | grep *.txt | while read file; do cat $file >> ./output.txt; done;

cosas fáciles


type [source folder]/*.[File extension] > [destination folder]/[file name].[File extension]

Por ejemplo:

type C:/*.txt > C:/1/all.txt

Eso tomará todos los archivos de texto en la carpeta C: / y los guardará en la carpeta C: / 1 con el nombre de all.txt

O

type [source folder]/* > [destination folder]/[file name].[File extension]

Por ejemplo:

type C:/* > C:/1/all.txt

Eso tomará todos los archivos que están presentes en la carpeta y colocará el Contenido en C: / 1 / all.txt