scrip shell - remplacer une ligne dans un fichier

scrip shell - remplacer une ligne dans un fichier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 09-07-2007 à 14:12:30    

Bonjour,
 
Je souhaiterai insérer dans un script shell une commande me permettant de remplacer une ligne par une autre.
Le problème est que je ne sais pas quelle est la syntaxe exacte de la ligne.
Je sais où elle se trouve (numéro de la ligne) ou par quoi elle commence.
 
Savez-vous comment je peux m'y prendre? (je pense qu'avec awk cela devrait être faisable, mais je ne sais pas m'en servir)
 
Merci d'avance pour votre aide.
Cordialement
Julian

Reply

Marsh Posté le 09-07-2007 à 14:12:30   

Reply

Marsh Posté le 09-07-2007 à 14:51:33    

Si tu ne connais la synthaxe d'une commande, il faut regarder le man. Ca doit devenir un rélfexe.
 
man awk

Reply

Marsh Posté le 09-07-2007 à 14:52:26    

man sed aussi  :kaola:


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 09-07-2007 à 14:59:50    

Merci, ça je connais.
Le problème est que comme je ne connais pas la chaîne complète (ou sa taille) à remplacer, je ne peux pas utiliser sed.
avec awk j'arrive bien à récupérer la ligne exacte, mais je ne vois pas comment la remplacer (je vois bien comment remplacer une chaine de caractere, mais pas une ligne complete)

Reply

Marsh Posté le 09-07-2007 à 19:37:20    

Par exemple avec sed, pour remplacer la 3ème ligne par "ma nouvelle ligne" :

sed '3cma nouvelle ligne'


Message édité par matafan le 09-07-2007 à 19:37:53
Reply

Marsh Posté le 13-07-2007 à 00:43:18    

sed 7s/.*/POUET/  fichier
 
remplace la 7° ligne par POUET dans fichier  :)

Reply

Marsh Posté le 13-07-2007 à 07:12:01    

Pas besoin de s/// ... Voir mon post juste au dessus du tiens.

Reply

Marsh Posté le 13-07-2007 à 12:51:58    

oui j'ai vu mais c'est pour montrer plusieurs solutions ;)

Reply

Marsh Posté le 15-11-2017 à 10:44:14    

J'ai été confronté au problème à l'instant, juste pour signaler qu'il manque 1  espace dans la 1ère commande :
sed '3cma nouvelle ligne' => sed '3c ma nouvelle ligne'


Message édité par jcop le 15-11-2017 à 10:45:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed