Pages : 1
#1 Le 22/04/2008, à 10:48
- JérémieR
[Résolu] Probleme avec sed
Bonjour à tous,
j'essaye d'effectuer une substitution ave la commande sed. Malheureusement celle ci ne fonctionne pas lorsque je suis en bash mais elle fonctionne avec sh. Il faut impérativement que je le fasse fonctionner avec bash.
Si quelqu'un a une idée.
Merci d'avance.
#!/bin/bash
cp index.txt index.txt.old
ls
cat index.txt.old | sed -r s/\([0-9]{1,3}\.\){3}[0-9]{1,3}/"172.165.2.3"/ > index.txt
exit 0
Dernière modification par JérémieR (Le 22/04/2008, à 12:31)
Hors ligne
#2 Le 22/04/2008, à 12:15
- best_friend_fr
Re : [Résolu] Probleme avec sed
Salut
Tu as essayé d'échapper les guillemets ?
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 22/04/2008, à 12:21
- JérémieR
Re : [Résolu] Probleme avec sed
Oui et j'ai toujours le même problème:
sed: impossible de lire s/([0-9]1.){3}[0-9]3/"172.165.2.3"/: Aucun fichier ou répertoire de ce type
sed: impossible de lire s/([0-9]3.){3}[0-9]1/"172.165.2.3"/: Aucun fichier ou répertoire de ce type
sed: impossible de lire s/([0-9]3.){3}[0-9]3/"172.165.2.3"/: Aucun fichier ou répertoire de ce type
Hors ligne
#4 Le 22/04/2008, à 12:24
- wilyjean
Re : [Résolu] Probleme avec sed
Salut,
Avec cela, il y a pas de problème chez moi!
cat index.txt.old | sed -e 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/172.165.2.3/g'
Hors ligne
#5 Le 22/04/2008, à 12:31
- JérémieR
Re : [Résolu] Probleme avec sed
Et bien merci wilyjean, ça marche par contre peut tu m'expliquer pourquoi tu a mis l'option "e" à la palce de "r". Il me semblait que pour utiliser les expressions régulières, il fallait le "r".
Encore merci
Hors ligne
#6 Le 22/04/2008, à 12:46
- wilyjean
Re : [Résolu] Probleme avec sed
Pour le -e, j'ai toujours fais de cette manière, donc je me suis j'amais vraiment posé la question mais c'est vrai qu'il y a une option -r dans le man.
Enfin, dans ton cas, l'option -e n'est pas nécessaire car il y a qu'une seule instruction et l'utilisation de cat n'est pas nécessaire.
sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/172.165.2.3/g' index.txt.old
Hors ligne
#7 Le 22/04/2008, à 12:49
- JérémieR
Re : [Résolu] Probleme avec sed
D'accord, mais c'est une partie d'un programme et j'ai bessoin de faire le cat quand je remet cette partie dans le programme.
Encore une fois merci.
Hors ligne
#8 Le 22/04/2008, à 23:34
- Link31
Re : [Résolu] Probleme avec sed
Plutôt que de copier ton fichier index.txt dans index.txt.old, tu devrais essayer l'option -i de sed.
Hors ligne
#9 Le 23/04/2008, à 07:16
- JérémieR
Re : [Résolu] Probleme avec sed
Oui j'y ai pensé. Mais pour la phase de test, je préférai avoir une sauvegarde de mon fichier.
Merci tout de même.
Hors ligne
Pages : 1