Les Allergies
Alimentaires
Posez votre question Signaler

Remplacer chaîne de caractères ds un fichier [Résolu]

greg5959 5Messages postés 22 juin 2007Date d'inscription - Dernière réponse le 7 sept. 2010 à 22:35
Bonjour
Quel est la commande Unix pour remplacer une chaîne de caractère par une autre dans la première ligne d'un fichier ( et uniquement dans la première) ?
Merci pour votre aide
Greg
Lire la suite 

Remplacer chaîne de caractères ds un fichier »

18 réponses
Réponse
+4
moins plus
Salut,
sed -i.bak '1 s/motif/remplacement/' fichier
Voir aussi : sed substitution#simplee

;-))
popopopop - 7 sept. 2010 à 20:34
presque, mais ça m'apprendra à simplifier mon problème...

$ cat test 
*/30 * * * * /usr/bin/ >/dev/null 
*/40 * * * * /usr/bin/toto  >/dev/null 
$  sed 's#/usr/bin/#&commande1#' test 
*/30 * * * * /usr/bin/commande1 >/dev/null 
*/40 * * * * /usr/bin/commande1toto >/dev/null 


Et si je fais

 sed 's#*/30 * * * * /usr/bin/#&commande1#' test 
*/30 * * * * /usr/bin/ >/dev/null 
*/40 * * * * /usr/bin/toto >/dev/null 
jipicy- 7 sept. 2010 à 20:37
$ cat plop
*/30 * * * * /usr/bin/ >/dev/null
*/40 * * * * /usr/bin/toto >/dev/null

$ sed '\#^*/30# {s#/usr/bin/#&commande1#}' plop
*/30 * * * * /usr/bin/commande1 >/dev/null
*/40 * * * * /usr/bin/toto >/dev/null

$
popopopop - 7 sept. 2010 à 22:35
jipicy, vraiment merci beaucoup. J'ai changé le crontab de 7000 utilisateurs en quelques minutes et en plus j'ai parfaitement compris ta solution (avec une petite plongée dans le man et google). Vraiment merci beaucoup pour ce coup de main. :)
Ajouter un commentaire
Réponse
+1
moins plus
Dsl mais sed --version ne marche pas
Merci
Ajouter un commentaire
Réponse
+1
moins plus
Essaye "sed -v" alors et dans tous les cas "man sed" ;-))
Ajouter un commentaire
Réponse
+0
moins plus
De rien ;-))
greg5959- 22 juin 2007 à 11:50
Excuse moi mais je viens d'essayer et je pense que le sed ne répond pas à mes attentes car je souhaiterais que la modif soit enregistrée dans le fichier ( et pas seulement éditée)
et apparmeent le -i.bak ne marche pas

Merci
Ajouter un commentaire
Réponse
+0
moins plus
Quelle version de "sed" utilises-tu ?
sed --version
Pour que la modification soit prise en compte il faut une version supérieure à 4.0.5, sinon il faut passer par un fichier temporaire :
sed '1 s/motif/remplacement/' < fichier > fich.tmp && mv -f fich.tmp fichier
;-))
Ajouter un commentaire
Ce document intitulé « Remplacer chaîne de caractères ds un fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?