Skip to main content

Extraire le contenu d'un coup d'un contexte

Voici comment extraire tout le contenu de plusieurs fichiers dans une sous-arborescence : 

.venv) [nancmdzk@TOLX302130067 ~/workspace/techdata-ansible-collection] (docs/roles_documentation)$ tree techdata/monitoring/roles/kibana/
techdata/monitoring/roles/kibana/
├── defaults
│   └── main.yml
├── files
│   └── node.options
├── handlers
│   └── main.yml
├── meta
│   ├── argument_specs.yml
│   └── main.yml
├── README.md
├── tasks
│   ├── cleanup_old_facts.yml
│   ├── configure.yml
│   └── main.yml
├── templates
│   └── kibana.yml.j2
├── tests
│   └── main.yml
└── vars
    └── main.yml

8 directories, 12 files

La commande magique : 

find techdata/monitoring/roles/kibana/ -type f -exec echo -e "\n=== {} ===" \; -exec cat {} \;

La même commande magique extraite dans un fichier : 

find techdata/monitoring/roles/kibana/ -type f -exec echo -e "\n=== {} ===" \; -exec cat {} \; > kibana_full_export.txt

Notice explicative des options de la commande :

    find techdata/monitoring/roles/kibana/ : Outil de recherche et chemin du dossier de départ où fouiller. -type f : Restreint la recherche aux fichiers uniquement (f pour file). Cela permet d'ignorer les dossiers et d'éviter les erreurs de lecture. -exec ... \; : Indique à la commande find d'exécuter une action spécifique sur chaque élément trouvé. Le \; sert à marquer la fin de l'instruction à exécuter. echo -e "\n=== {} ===" : La première action exécutée. Elle affiche le nom du fichier comme un titre.
      -e : Active l'interprétation des caractères spéciaux, comme le \n qui crée un saut de ligne pour aérer la lecture. {} : C'est la variable de find. Elle est remplacée dynamiquement par le chemin du fichier actuellement traité. -exec cat {} \; : La deuxième action exécutée immédiatement après. La commande cat lit et affiche l'intégralité du contenu du fichier (représenté par {}). > kibana_full_export.txt : Redirige la sortie standard (tout ce qui se serait affiché dans le terminal) pour l'écrire directement dans un fichier texte.