Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix > Solaris
Solaris Forum d'entraide sur le système Solaris.
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 24/11/2009, 23h07   #1
Membre du Club
 
Inscription : avril 2007
Messages : 161
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 161
Points : 43
Points : 43
Par défaut comande sed solaris

Bonjour,

j'ai une comande qui tourne nikel sur linux, la comande permet tout simplement d'inserer un caractère dans une ligne dans un fichier en se referant au numéro de la ligne.

Code :
sed -i '20 c chaine' fichier.txt
insere la chaine "chaine" à la 20 ème ligne du fichier: fichier.txt

malheuresment cela ne marche pas sur Solaris, et j'ai tout essayé mais helas aucun résultat.

Merci d'avance.
scolopendra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 05h53   #2
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Citation:
Envoyé par scolopendra
malheuresment cela ne marche pas sur Solaris
et on diagnostique le problème parce que tu donnes le message d'erreur retourné par ta commande. ::

Il y a de grandes chances, que le sed insallé sur Solaris soit POSIX, et non GNU...

Or, POSIX sed ne connait pas l'option -i

Dernière modification par N_BaH ; 25/11/2009 à 09h22.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 09h08   #3
Membre du Club
 
Inscription : avril 2007
Messages : 161
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 161
Points : 43
Points : 43
désolé, oui apparement le -i n'est pas reconnu mais je peux toujours l'eviter en balançant le resultat dans un fichier...

en fait l'erreur sans (-i) est :

Merci pour vos réponses
scolopendra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 09h21   #4
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
sed étant donc apparemment POSIX, il a peut-être besoin de plus de rigueur dans l'écriture de ses commandes.
As-tu essayé :
Code :
sed '20 c\chaine' fichier.txt
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 13h47   #5
Membre du Club
 
Inscription : avril 2007
Messages : 161
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 161
Points : 43
Points : 43
Merci pour ta réponse la commande :

Code :
1
2
sed '20c\
text' fichier
passe mieux maintenant mon problème c'est l'interpretation des variables à savoir


Code :
1
2
sed '$numc\
$text' fichier
ne passe pas

j'ai essayer aussi

Code :
1
2
3
4
var="'" "${num}c\"

sed $var
$text' fichier
ou

Code :
1
2
sed "'"$num "c/"
$text' fichier
mais rien ne marche

mais par contre quand je fixe en dur le num ca marche:

Code :
1
2
sed '20c\
$text' fichier
comment faire

et merci pour vos reponses
scolopendra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 13h55   #6
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Code :
1
2
3
4
5
6
7
var=nananèreuh
sed '2 c\'"$var"'' <<< "bla
cra
ella"
bla
nananèreuh
ella
!
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 14h01   #7
Membre du Club
 
Inscription : avril 2007
Messages : 161
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 161
Points : 43
Points : 43
oui d'accord mais si je met le "2" dans une variable qu'elle sera la commande?
scolopendra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 14h11   #8
Membre du Club
 
Inscription : avril 2007
Messages : 161
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 161
Points : 43
Points : 43
parce que comme mentionné sur mon post la commande :

Code :
1
2
sed '20c\
$text' fichier
marche nikel mon souci c'est quand je remplace le numéro de ligne par une variable ca coince

Merci
scolopendra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 14h26   #9
Membre du Club
 
Inscription : avril 2007
Messages : 161
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 161
Points : 43
Points : 43
c'est bon j'ai trouvé

Code :
1
2
sed ''"$num"'c\
'"$text"'' fichier

merci beaucoup
scolopendra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2009, 14h28   #10
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Code :
1
2
3
4
5
6
7
var=2
sed ''$var' c\nananèreuh' <<< "bla
cra
ella"
bla
nananèreuh
ella
...
?
N_BaH 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 +1. Il est actuellement 18h47.


 
 
 
 
Partenaires

Hébergement Web