187 votes

Comment remplacer une ligne entière dans un fichier texte par numéro de ligne

J’ai une situation où je veux un script bash pour remplacer une ligne entière dans un fichier. Le numéro de ligne est toujours le même, de sorte qu’il peut s’agir d’une variable codée en dur.

Je n’essaie pas de remplacer une sous-chaîne dans cette ligne, je veux juste remplacer cette ligne entièrement par une nouvelle ligne.

Existe-t-il des méthodes bash pour le faire (ou quelque chose de simple qui peut être jeté dans un script .sh).

283voto

chepner Points 54078

Pas le plus grand, mais cela devrait fonctionner:

doit être remplacé par votre numéro de ligne cible. Cela remplace la ligne dans le fichier d’origine. Pour enregistrer le texte modifié dans un autre fichier, supprimez l’option :

46voto

Kyle Points 1657

En fait, j’ai utilisé ce script pour remplacer une ligne de code dans le fichier cron sur les serveurs UNIX de notre société il y a quelque temps. Nous l’avons exécuté en tant que script shell normal et n’avons eu aucun problème:

Cela ne va pas par numéro de ligne, mais vous pouvez facilement passer à un système basé sur un numéro de ligne en plaçant le numéro de ligne avant le et en plaçant un caractère générique à la place de.

20voto

Eric Robinson Points 1275

Compte tenu de ce fichier de test (test.txt)

la commande suivante remplacera la première ligne par « newline text »

Résultat:

plus d’informations peuvent être trouvées ici

http://www.thegeekstuff.com/2009/11/unix-sed-tutorial-append-insert-replace-and-count-file-lines/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X