GNU/Linux >> Tutoriels Linux >  >> Linux

Chat récursif tous les fichiers en un seul fichier

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

une petite explication :

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

Utilisez find pour obtenir tous les fichiers JSON et les concaténer.

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

Notez que ce ne sera pas un JSON valide. Si vous souhaitez qu'un fichier JSON contienne plusieurs objets, ils doivent se trouver dans un tableau ou un objet contenant, vous devez donc ajouter [ ] autour d'eux et mettre , entre chacun.


Alternativement - si vous avez une liste de vos fichiers - vous pouvez la diriger vers xargs

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

Linux
  1. Copier des fichiers dans le terminal Linux

  2. Déplacer des fichiers dans le terminal Linux

  3. Comment diviser un seul fichier en plusieurs fichiers en fonction des lignes

  4. Concaténer des fichiers spécifiques en un seul fichier ?

  5. Linux - Diviser une seule ligne en plusieurs lignes, caractère de saut de ligne manquant pour toutes les lignes du fichier d'entrée ?

Les 6 meilleures façons d'afficher des fichiers sous Linux

Un moyen facile de fusionner des fichiers avec la commande Cat

Fusionner deux fichiers HTML dans le fichier HTML maître

Copiez tous les fichiers correspondant au modèle du répertoire et des sous-répertoires dans un seul répertoire

Comment puis-je éditer tous les fichiers renvoyés par find in vi sous Linux ?

Comment puis-je copier de manière récursive tous les fichiers pdf d'un répertoire (et de ses sous-répertoires) dans un seul répertoire de sortie?