recursive files all linux bash unix grep cat

linux - files - Recursive cat todos los archivos en un solo archivo



cat recursive (4)

Tengo un montón de archivos en carpetas como

data/A/A/A/json1.json data/A/A/A/json2.json data/A/A/B/json1.json ... data/Z/Z/Z/json_x.json

Quiero cazar a todos los jsons en un solo archivo?


encontrar ./ ​​-type f | xargs cat> ../singlefilename

Me gustaría esto, fácil y simple.

../ evitar el error "archivo de entrada es archivo de salida"


Alternativamente, si tiene una lista de sus archivos, puede canalizarlo a xargs

<path to your files> | xargs cat > all.json


Use find para obtener todos los archivos JSON y concatenarlos.

find data -name ''*.json'' -exec cat {} + > all.json

Tenga en cuenta que esto no será válido JSON. Si desea que un archivo JSON contenga varios objetos, debe estar en una matriz u objeto contenedor, por lo que deberá agregar [ ] alrededor y colocarlos entre cada uno.


find data/ -name ''*.json'' -exec cat {} /; > uber.json

una breve explicación:

find <where> / -name <file_name_pattern> / -exec <run_cmd_on_every_hit> {} /; / > <where_to_store>