GNU/Linux >> Linux Esercitazione >  >> Linux

Gatto ricorsivo tutti i file in un singolo file

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

una breve spiegazione:

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

Usa find per ottenere tutti i file JSON e concatenarli.

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

Si noti che questo non sarà un JSON valido. Se vuoi che un file JSON contenga più oggetti, questi devono trovarsi in un array o oggetto contenitore, quindi devi aggiungere [ ] intorno a loro e metti , tra uno e l'altro.


In alternativa, se hai un elenco dei tuoi file, puoi reindirizzarlo a xargs

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

Linux
  1. Come dividere un singolo file in più file in base alle righe

  2. Mostra tutto il file fino alla partita?

  3. Ottieni tutti i file tranne i file nell'array - Bash?

  4. Come modificare l'autorizzazione su un singolo file?

  5. Come trovare tutti i file sparsi in Linux

I 6 modi migliori per visualizzare i file in Linux

Un modo semplice per unire i file con il comando Cat

Come aggiungere il contenuto di più file in un unico file

Copia tutti i file che corrispondono al modello dalla directory e dalle sottodirectory in un'unica directory

Come posso modificare tutti i file restituiti da find in vi in ​​Linux?

Come posso copiare in modo ricorsivo tutti i file pdf in una directory (e le sue sottodirectory) in un'unica directory di output?