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 02/05/2007, 17h54   #1
Invité de passage
 
Inscription : août 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 14
Points : 3
Points : 3
Par défaut Utilisation de sed

Bonjour,
J'ai un fichier, disons fichier.txt, qui contient les données suivantes :

[s_m_1]
$$mois=200702

[s_m_2]
$$mois=200702

Je voudrai le modifier par une ligne de commande afin qu'il contienne les données suivantes :

[s_m_1]
$$mois=200702

[s_m_2]
$$mois=200703

J'ai cherché comment faire ça avec la commande sed mais je ne suis pas un spécialiste du shell et je bute une peu...
Quelqu'un pourrait-il me donner un coup de main ?
Merci d'avance !
p1erstef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 22h15   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par p1erstef
[s_m_1]
$$mois=200702

[s_m_2]
$$mois=200702

En utilisant le n° de ligne, tu peux faire :

sed -i '5s/02$/03/' fichier

Nota : -i en bash (pas ksh)



Par rapport à l'etiquette [s_m_2], avec awk :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
awk '
{
if ($0 ~ /^\[s_m_2\]/) {
	print $0
	getline
	sub(/02$/,"03",$0)
}
print $0
}
' fichier.txt > resultat.txt
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 12h15   #3
Invité de passage
 
Inscription : août 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 14
Points : 3
Points : 3
Merci BlaireauOne,

C'est exactement ce qu'il me fallait.
Grâce à la commande awk et à l'exemple d'utilisation que tu donnes, j'ai pu arriver à faire ce que je voulais !
p1erstef est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h34.


 
 
 
 
Partenaires

Hébergement Web