Rechercher : dans
Par :

Remplacer une ligne par une autre

Dernière réponse le 18 jui 2008 à 17:13:03 wapette21, le 18 jui 2008 à 16:07:53 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaite modifier un fichier de config via un script ksh, seulement je rencontre quelque
problème.

je fait un cat -n mon_fichier.cfg et j'obtiens :

1 # Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
2 # jours fériés), les dates sont au format JJ/MM/AAAA.
3 14/07/2006
4 17/07/2006
5 18/07/2006
6 15/08/2006
7 01/01/2007
8 17/01/2008
9 24/01/2008
10 17/07/2008
11 18/07/2008

maintenant grâce au numéro de ligne je veux modifié une ligne par exemple la 4.

je fait donc sed "/4/c 17/07/2006\"g\" toto" mon_fichier.txt

résultat -> sed: command garbled: /4/c 17/07/2006"g" toto

quelqu'un a une idée.

Merci a tous.

Configuration: Windows XP
Firefox 3.0

Meilleures réponses pour « remplacer une ligne par une autre » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier Voir Supprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Créer sa carte de visite en ligne Voir[http://static.commentcamarche.net/... Grâce aux outils de création en ligne de carte de visite, vous pouvez créer vous-même votre carte de visite en quelques clics. La carte de visite : mode d’emploi Pourquoi ? Le format Le papier La...
Créer une boutique en ligne VoirCréer une boutique en ligne Envisager de se lancer dans la vente sur Internet à travers une boutique en ligne demande de la réflexion et l'étude précise de votre projet. Avantages d'une boutique en ligne Contraintes d'une boutique en...
[Windows] Démarrer/arrêter un service en ligne de commande VoirL'outil netsh (netsh.exe) permet d'automatiser le démarrage ou l'arrêt d'un service grâce à la ligne de commande suivante : Pour démarrer un service : Net start nom_du_service Pour arrêter un service : Net stop nom_du_service Cela nécessite les...
Introduction aux courants porteurs en ligne (CPL) VoirIntroduction aux CPL On retient sous l'appellation CPL « Courants Porteurs en Ligne » toute technologie qui vise à faire passer de l'information à bas débit ou haut débit sur les lignes électriques en utilisant des techniques de modulation...
Publicité en ligne VoirIntroduction à la publicité en ligne La publicité en ligne est un moyen permettant aux webmasters de rentabiliser financièrement leur site internet et de leur permettre de couvrir les coûts d'hébergement et de noms de domaine. Il s'agit également...
Les lignes louées (T1, T2, T3) VoirLes lignes louées On appelle lignes "louées" des lignes spécialisées (notées parfois LS) qui permettent la transmission de données à moyens et hauts débits (64 Kbps à 140 Mbps) en liaison point à point ou multipoints (service Transfix). En Europe,...

1

jipicy, le 18 jui 2008 à 16:28:43

Salut,

Pourquoi faire compliqué ?

sed '4 c 17/07/2006"g" toto'
ou
sed '4 s|.*|&"g" toto|'
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy

2

wapette21, le 18 jui 2008 à 16:45:19

Salut,

La premier commande ne fonctionne pas : sed '4 c 17/07/2006"g" toto' mon_fichier.cfg
sed: command garbled: 4 c 17/07/2006"g" toto

et la deuxieme ne remplace pas ma ligne : sed '4 s|.*|&"g" toto|' mon_fichier.cfg
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
17/07/2006"g" toto
18/07/2006
15/08/2006
01/01/2007
17/01/2008
24/01/2008
17/07/2008
18/07/2008

Merci de vos réponse.

Répondre à wapette21

5

Manu, le 18 jui 2008 à 17:06:51

Bonjour,

Difficile...

On ne sait pas où vous voulez changer (la quatrième ligne, les lignes contenant un 4, les lignes débutant par un 4), on ne sait pas ce que vous voulez changer, et on ne sait pas ce que vous voulez mettre à la place (toto est-il le fichier qui contient la nouvelle date ?)

Entre autres on ne sait pas pourquoi vous n'êtes pas satisfait des propositions faites.

Manu

Répondre à Manu

3

jipicy, le 18 jui 2008 à 16:56:15

[tmpfs]$ cat fichier.txt
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
17/07/2006
18/07/2006
15/08/2006
01/01/2007
17/01/2008
24/01/2008
17/07/2008
18/07/2008

[tmpfs]$ sed '4 c 17/07/2006"g" toto' fichier.txt
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
17/07/2006"g" toto
18/07/2006
15/08/2006
01/01/2007
17/01/2008
24/01/2008
17/07/2008
18/07/2008

[tmpfs]$ sed '4 s|.*|&"g" toto|' fichier.txt
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
17/07/2006"g" toto
18/07/2006
15/08/2006
01/01/2007
17/01/2008
24/01/2008
17/07/2008
18/07/2008
[tmpfs]$  
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy

4

wapette21, le 18 jui 2008 à 17:05:35

Je suis désoler mais je ne comprend pas, je me suis peut etre mal expliquer mon fichier.txt contient :
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
17/07/2006
18/07/2006
15/08/2006
01/01/2007
17/01/2008
24/01/2008
17/07/2008
18/07/2008

ce que je souhaite c'est pourvoir modifier certaine date en les remplacent exemple :
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
toto
18/07/2006
15/08/2006
01/01/2007
17/01/2008
24/01/2008
17/07/2008
18/07/2008

J'ai remplacer ma 4 ligne par toto mais les commande ci dessus ne fonctionne pas.

Pour information je suis sous solaris 9.

Merci

Répondre à wapette21

7

Manu, le 18 jui 2008 à 17:09:24

Rebonjour

sed '4 s!17/07/2006!toto!'

Manu

Répondre à Manu

6

jipicy, le 18 jui 2008 à 17:07:45

Désolé j'avais mal compris :

sed '4 c toto'
ou
sed '4 s|.*|toto|'
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy

8

 wapette21, le 18 jui 2008 à 17:13:03

Super merci a tout les deux vaux deux solutions fonctionne

Merci

a bientôt

Répondre à wapette21