SHELL-Commande sed ne supprime pas les lignes
Résolu/Fermé
A voir également:
- SHELL-Commande sed ne supprime pas les lignes
- Invite de commande - Guide
- Recuperer message whatsapp supprimé - Guide
- Commande terminal mac - Guide
- Ne pas apparaître en ligne sur instagram - Guide
- Classic shell windows 10 français - Télécharger - Personnalisation
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
24 mai 2011 à 16:16
24 mai 2011 à 16:16
Salut,
Pour comprendre, bonne lecture ici
Pour comprendre, bonne lecture ici
lami20j@debian-acer:~$ cat plop aaaa error bbbb error aaa cccc error dddd lami20j@debian-acer:~$ sed -n '/error/d' plop lami20j@debian-acer:~$ sed -e '/error/d' plop aaaa bbbb dddd lami20j@debian-acer:~$ cat plop aaaa error bbbb error aaa cccc error dddd lami20j@debian-acer:~$ sed -e '/error/d' plop > plop.tmp lami20j@debian-acer:~$ cat plop aaaa error bbbb error aaa cccc error dddd lami20j@debian-acer:~$ cat plop.tmp aaaa bbbb dddd lami20j@debian-acer:~$ sed -i.orig '/error/d' plop lami20j@debian-acer:~$ cat plop aaaa bbbb dddd lami20j@debian-acer:~$ cat plop.orig aaaa error bbbb error aaa cccc error dddd
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
Modifié par lami20j le 25/05/2011 à 10:05
Modifié par lami20j le 25/05/2011 à 10:05
Salut,
l'option -i n'est pas reconnue (illegal option)...
Tu es sur quel système?
Tu as quelle version de sed ?
Chez moi j'ai
On peut le faire avec perl alors
l'option -i n'est pas reconnue (illegal option)...
Tu es sur quel système?
Tu as quelle version de sed ?
Chez moi j'ai
lami20j@debian-acer:~$ sed --version GNU sed version 4.2.1
On peut le faire avec perl alors
lami20j@debian-acer:~$ cat plop aaaa error bbbb error aaa cccc error dddd lami20j@debian-acer:~$ perl -ni.orig -e 'print unless /error/' plop lami20j@debian-acer:~$ cat plop aaaa bbbb dddd lami20j@debian-acer:~$ cat plop.orig aaaa error bbbb error aaa cccc error dddd
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
25 mai 2011 à 10:09
25 mai 2011 à 10:09
Re,
Ou avec une combinaison grep et echo
Ou avec une combinaison grep et echo
lami20j@debian-acer:~$ cat plop aaaa error bbbb error aaa cccc error dddd lami20j@debian-acer:~$ var=$(grep -v error plop) && echo "$var" > plop lami20j@debian-acer:~$ cat plop aaaa bbbb dddd
la commande
Mais tes deux autres solutions (perl et grep+echo) marchent parfaitement, avec une préférence pour la dernière car je n'ai pas de fichier à supprimer ensuite.
Encore merci ;)
sed --versionne marche pas non plus... bizarre
Mais tes deux autres solutions (perl et grep+echo) marchent parfaitement, avec une préférence pour la dernière car je n'ai pas de fichier à supprimer ensuite.
Encore merci ;)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
25 mai 2011 à 10:23
25 mai 2011 à 10:23
Re,
De rien ;-)
avec une préférence pour la dernière car je n'ai pas de fichier à supprimer ensuite.
Il suffit d'enlever .orig de la commande perl et il n'y aura plus de fichier à supprimer.
Toutefois, quand on n'est pas sur de résultat il faut penser faire une sauvegarde de fichier d'origine
A savoir que .orig est-une extension crée par moi, tu peux mettre n'importe quoi .bak, .old, .ancien, .blabla
Voici sans sauvegarde de fichier original (la dernière commande montre qu'il n'y a pas d'autres fichiers à part plop)
De rien ;-)
avec une préférence pour la dernière car je n'ai pas de fichier à supprimer ensuite.
Il suffit d'enlever .orig de la commande perl et il n'y aura plus de fichier à supprimer.
Toutefois, quand on n'est pas sur de résultat il faut penser faire une sauvegarde de fichier d'origine
A savoir que .orig est-une extension crée par moi, tu peux mettre n'importe quoi .bak, .old, .ancien, .blabla
Voici sans sauvegarde de fichier original (la dernière commande montre qu'il n'y a pas d'autres fichiers à part plop)
lami20j@debian-acer:~$ cat plop aaaa error bbbb error aaa cccc error dddd lami20j@debian-acer:~$ perl -ni -e 'print unless /error/' plop lami20j@debian-acer:~$ cat plop aaaa bbbb dddd lami20j@debian-acer:~$ cat plop.orig cat: plop.orig: No such file or directory
24 mai 2011 à 16:40
J'ai cru qu'on pouvait le faire sans passer par un fichier temporaire.
Merci bien ;)
Modifié par lami20j le 24/05/2011 à 17:19
J'ai cru qu'on pouvait le faire sans passer par un fichier temporaire.
Oui, on peut. C'était le dernier exemple avec l'option -i
Regarde attentivement ;-)
En fait le fichier original est sauvegardé avec l'extension .orig
25 mai 2011 à 09:55
ça ne fonctionne pas de mon côté : l'option -i n'est pas reconnue (illegal option)...
Ca marche bien en faisant :