Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2007, 11h18   #1
Membre à l'essai
 
Inscription : mai 2003
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 45
Points : 24
Points : 24
Par défaut Supprimer une ligne particuliere et la remplacer.

Bonjour,
Un petit exemple illustrera très bien mon "problème" mieux que tous les mots que je pourrai utiliser

Je cherche à automatiser une "substitution".

J'ai un fichier type :
Citation:
blablablabla eeeee
bloblobloblo fffff
blublublublu rrrr
bliblibliblibli zzzzzz
Je cherche à remplacer la ligne qui début par blublu par bleblebleble.
Je sais comment identifier la ligne que je veux remplacer, elle commence toujours par la même chaine de caractères mais elle peut être de longueur variable.

Alors je voulais savoir comment faire, je suis partie sur l'idée d'utiliser la commande sed. Mais je n'y arrive pas.
j'arrive à supprimer la ligne correspondant à l'occurence de la chaine blublu, mais je ne sais pas la substituer avec ma nouvelle chaine.

Auriez-vous une idée ?

Merci.
__________________
L'informatique est une science exacte au comportement aléatoire.
muse19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 12h26   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
vi -c "s/blublublublu/bleblebleble/|:wq" fichier

ou avec Sed
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 14h01   #3
Membre à l'essai
 
Inscription : mai 2003
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 45
Points : 24
Points : 24
je viens d'essayer la commande "vi" que vous m'avez donné mais cela ne fonctionne pas.
Je n'ai pas non plus essayé 150 ans de bidouiller cette solution, parce qu'en fait cette substitution doit se faire sur 800 bash, donc je pensais écrire un bash juste pour faire cette substitution, et c'est pourquoi j'étais partie sur la commande sed...
__________________
L'informatique est une science exacte au comportement aléatoire.
muse19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 15h13   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
c'est ma faute j'ai oublié un caractere : "%"

Code :
1
2
3
4
5
6
7
8
strx(root/root)/>vi -c "%s/blublublublu/frefrefrefre/|:wq" t
"t" 4 lines, 79 characters "t" 4 lines, 79 characters 
asterix(root/root)[PASDEBASE]/>cat t
blablablabla eeeee
bloblobloblo fffff
frefrefrefre rrrr
bliblibliblibli zzzzzz
strx(root/root)/>rm t
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h49.


 
 
 
 
Partenaires

Hébergement Web