GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Rekursives Cat alle Dateien in einer einzigen Datei

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

eine kurze Erklärung:

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

Verwenden Sie find um alle JSON-Dateien zu erhalten und zu verketten.

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

Beachten Sie, dass dies kein gültiges JSON ist. Wenn Sie möchten, dass eine JSON-Datei mehrere Objekte enthält, müssen sie sich in einem enthaltenden Array oder Objekt befinden, also müssen Sie [ ] hinzufügen um sie herum und setzen Sie , zwischen jedem.


Alternativ – wenn Sie eine Liste Ihrer Dateien haben – können Sie diese an xargs weiterleiten

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

Linux
  1. Kopieren Sie Dateien im Linux-Terminal

  2. Verschieben Sie Dateien im Linux-Terminal

  3. So teilen Sie eine einzelne Datei basierend auf Zeilen in mehrere Dateien auf

  4. So finden Sie alle Sparse-Dateien in Linux

  5. So komprimieren Sie alle Dateien in allen Unterverzeichnissen in eine komprimierte Datei in Bash

Die 6 besten Möglichkeiten zum Anzeigen von Dateien unter Linux

Einfache Möglichkeit, Dateien mit dem Cat-Befehl zusammenzuführen

So fügen Sie den Inhalt mehrerer Dateien in eine Datei ein

Kopieren Sie alle Dateien, die dem Muster entsprechen, aus Verzeichnis und Unterverzeichnissen in ein einzelnes Verzeichnis

Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

Wie kann ich alle PDF-Dateien in einem Verzeichnis (und seinen Unterverzeichnissen) rekursiv in ein einziges Ausgabeverzeichnis kopieren?