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