Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/03/2016, à 17:32

chafer

concatener des fichiers en ajoutant des commentaires

Je voudrais concatener des fichiers mais ajouter des commentaires au debut de chaque fichiers comme suit:


fichier 1:
hello
word

fichier 2:
Bonjour
Tout le monde

fichier 3:
Salut
Bonsoir

je voudrais avoir comme resultat final:

premierement
hello
word

Deuxiemement:
Bonjour
Tout le monde

Troisiememnt
Salut
Bonsoir

Quelqu'un aurait une idee?

Hors ligne

#2 Le 04/03/2016, à 18:02

pingouinux

Re : concatener des fichiers en ajoutant des commentaires

Bonjour,
Tu peux faire ceci

$ cat liste_commentaires
fichier_1 premierement
fichier_2 Deuxiemement:
fichier_3 Troisiememnt
while read fichier commentaire
do
   echo "$commentaire"
   cat "$fichier"
   echo
done <liste_commentaires >fichier_resultat
$ cat fichier_resultat
premierement
hello
word

Deuxiemement:
Bonjour
Tout le monde

Troisiememnt
Salut
Bonsoir

Ajouté : Avec cette façon de faire, il peut y avoir des espaces dans les commentaires, mais pas dans les noms de fichiers

Dernière modification par pingouinux (Le 04/03/2016, à 18:04)

Hors ligne

#3 Le 04/03/2016, à 18:08

kholo

Re : concatener des fichiers en ajoutant des commentaires

bonjour,
avec des espaces dans les noms de fichiers façon bourrin :

#!/bin/bash
# ----------------------------------------------
nomLogiciel="$(basename "$0")"
FONCTION="concaténation de fichiers sous certaines conditions"

# je part du principe que 
# "fichier x:" (x= 1, 2, 3 )ne fait pas parti du fichier
# que les fichiers se nomment respectivement
# fichier 1, fichier 2, fichier 3
# (pas de probleme avec les espaces, 
# possible d'avoir des extensions)
# 

nomFichier[1]="fichier 1" ;
nomFichier[2]="fichier 2" ;
nomFichier[3]="fichier 3" ;
nouveauFichier="fichierSorti" ;

echo "premierement" > "$nouveauFichier" ;
cat "${nomFichier[1]}" >> "$nouveauFichier" ;
echo "
Deuxiemement" >> "$nouveauFichier" ;
cat "${nomFichier[2]}" >> "$nouveauFichier" ;
echo "
Troisiememnt" >> "$nouveauFichier" ;
cat "${nomFichier[3]}" >> "$nouveauFichier" ;
exit

A mettre dans un fichier et le rendre exécutable bien sûr
les fichiers d'entrés et de sortis sont dans le même dossier

Hors ligne