GNU/Linux >> Tutoriels Linux >  >> Linux

Bash :ajouter une chaîne à la fin du fichier sans saut de ligne

sed '$s/$/yourText2/' list.txt > _list.txt_ && mv -- _list.txt_ list.txt

Si votre sed l'implémentation prend en charge le -i option, vous pouvez utiliser :

sed -i.bck '$s/$/yourText2/' list.txt

Avec la deuxième solution, vous aurez également une sauvegarde (avec la première, vous devrez le faire manuellement).

Sinon :

ex -sc 's/$/yourText2/|w|q' list.txt 

ou

perl -i.bck -pe's/$/yourText2/ if eof' list.txt

Utilisez simplement printf à la place, puisqu'il n'imprime pas la nouvelle ligne par défaut :

printf "final line" >> file

Tester

Créons un fichier, puis ajoutons une ligne supplémentaire sans nouvelle ligne à la fin. Remarque j'utilise cat -vet pour voir les nouvelles lignes.

$ seq 2 > file
$ cat -vet file
1$
2$
$ printf "the end" >> file
$ cat -vet file
1$
2$
the end

Vous pouvez utiliser le paramètre -n de echo. Comme ceci :

$ touch a.txt
$ echo -n "A" >> a.txt
$ echo -n "B" >> a.txt
$ echo -n "C" >> a.txt
$ cat a.txt
ABC

EDIT :Aha, vous aviez déjà un fichier contenant une chaîne et une nouvelle ligne. Eh bien, je vais laisser ça ici de toute façon, cela pourrait-il être utile à quelqu'un.


Linux
  1. Comment ajouter des numéros de ligne aux fichiers texte sous Linux

  2. La fête ?

  3. Dans Bash, comment ajouter une chaîne après chaque ligne dans un fichier ?

  4. Supprimer les espaces blancs dans chaque début de ligne de fichier, en utilisant bash

  5. Forcer bash à développer des variables dans une chaîne chargée à partir d'un fichier

Comment lire un fichier ligne par ligne dans Bash

Remplacement de chaîne dans Bash

Comment ajouter une chaîne de date à chaque ligne d'un fichier journal écrit en continu

Comment lire l'avant-dernière ligne d'un fichier avec Bash ?

Ajouter une colonne à la fin du fichier CSV en utilisant 'awk' dans le script BASH

Linux - vérifier s'il y a une ligne vide à la fin d'un fichier