GNU/Linux >> Tutoriels Linux >  >> Linux

Concaténer des fichiers et insérer une nouvelle ligne entre les fichiers

Si c'était moi qui le faisais, j'utiliserais sed :

sed -e '$s/$/\n/' -s *.txt > finalfile.txt

Dans ce modèle sed, $ a deux significations, premièrement, il correspond au dernier numéro de ligne uniquement (en tant que plage de lignes sur lesquelles appliquer un modèle) et deuxièmement, il correspond à la fin de la ligne dans le modèle de substitution.

Si votre version de sed n'a pas -s (traitez les fichiers d'entrée séparément), mais vous pouvez tout faire en boucle :

for f in *.txt ; do sed -e '$s/$/\n/' $f ; done > finalfile.txt

Vous pouvez faire :

for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done

Assurez-vous que le fichier finalfile.txt n'existe pas avant d'exécuter la commande ci-dessus.

Si vous êtes autorisé à utiliser awk vous pouvez faire :

awk 'FNR==1{print ""}1' *.txt > finalfile.txt

Si vous avez suffisamment de fichiers pour pouvoir tous les lister, vous pouvez utiliser la substitution de processus dans Bash, en insérant une nouvelle ligne entre chaque paire de fichiers :

cat File1.txt <(echo) File2.txt <(echo) File3.txt > finalfile.txt

Linux
  1. Comment compresser et décompresser des fichiers sous Linux

  2. Différence entre " et " sur la ligne de commande (bash) ? ?

  3. Différence entre chat et '>' pour mettre à zéro un fichier ?

  4. Linux - Partager des fichiers entre l'hôte Linux et l'invité Windows ?

  5. Téléchargement de fichiers sur le compte S3 à partir de la ligne de commande Linux

fdupes - Un outil de ligne de commande pour rechercher et supprimer des fichiers en double sous Linux

Comment utiliser la commande cp pour copier des fichiers et des répertoires

Installez Dropbox pour partager des fichiers entre Linux et Windows

Transférer des fichiers et des dossiers entre ordinateurs avec Croc

Partage de fichiers entre Linux Mint et Windows 10

Différence d'espace entre deux fichiers sous Linux