Re: sed : suppression de lignes

2022-09-09 Par sujet Marc Chantreux
On Fri, Sep 09, 2022 at 09:41:14PM +0200, Pierre ESTREM wrote:
> Attention à ne pas avoir inséré un caractère spécial à la place d'un espace.
> Ca m'est arrivé (comme à d'autres).

la bonne astuce pour verifier: tapper fc

la commande s'ouvre alors dans editor et si c'est vim. perso j'ai

set listchars=tab:  │,trail:▧,nbsp:▧

et dans 99% je découvre que j'ai introduit un espace npsp pret d'un pipe
(alt-space alt-6 au lieu de space alt-6).

-- 
Marc Chantreux
Pôle de Calcul et Services Avancés à la Recherche (CESAR)
http://annuaire.unistra.fr/p/20200



Re: sed : suppression de lignes

2022-09-09 Par sujet Marc Chantreux
salut,

> sed '/49.7.20/d'

je te confirme que le script est bon ... meme trop puisque 4937420 va
aussi matcher.

pour bien faire il te faudrait

sed '/49[.]7[.]20/d'

mais le plus rapide (à l'écriture et à l'excution) est de chercher une
chaine litterale puisque c'est ton cas:

grep -vF 49.7.20

il faut évidement que tu donnes un nom de fichier ou que stdin puisse
consommer qqchose.

> mais elle n'efface aucune ligne contenant "49.7.20."

comme ton problème n'est pas dans ton sedscript, tu pourrais nous donner
un exemple plus complet (entrée, commande complète, sortie)?

par exemple chez moi

<<. cat > oops
49.7.20.111|17August2022
49.7.20.120|18August2022
11.2.33.123|19August2022
.

for cmd desc (
9/sed '9base sed'
t/sed 'toybox sed'
b/sed 'busybox sed'
sed   'coreutils sed'
) {
print avec $desc
$cmd '/49.7.20/d' oops
echo
}

me donne bien

avec 9base sed
11.2.33.123|19August2022

avec toybox sed
11.2.33.123|19August2022

avec busybox sed
11.2.33.123|19August2022

avec coreutils sed
11.2.33.123|19August2022

-- 
Marc Chantreux
Pôle de Calcul et Services Avancés à la Recherche (CESAR)
http://annuaire.unistra.fr/p/20200



Re: sed : suppression de lignes

2022-09-09 Par sujet Pierre ESTREM

Bonsoir,

Attention à ne pas avoir inséré un caractère spécial à la place d'un espace.
Ca m'est arrivé (comme à d'autres).

pierre estrem


Le 09/09/2022 à 19:22, antoine.valmer a écrit :

Bonjour à tous,
Dans un fichier texte, j'ai ce type de lignes :
49.7.20.111|17August2022
49.7.20.120|18August2022

Je souhaite supprimer toutes celles qui ont cette expression :
"49.7.20."
J'ai tenté cette commande :
sed '/49.7.20/d'
mais elle n'efface aucune ligne contenant "49.7.20."
@+ et merci.
A. Valmer





Re: sed : suppression de lignes

2022-09-09 Par sujet Étienne Mollier
Bonjour,

antoine.valmer, on 2022-09-09:
> Dans un fichier texte, j'ai ce type de lignes :
> 49.7.20.111|17August2022
> 49.7.20.120|18August2022
> 
> Je souhaite supprimer toutes celles qui ont cette expression :
> "49.7.20."
> J'ai tenté cette commande :
> sed '/49.7.20/d' 
> mais elle n'efface aucune ligne contenant "49.7.20."

Bizarre, chez moi ça marche :

$ echo '49.7.20.111|17August2022' | sed '/49.7.20/d'
$ echo '49.7.20.120|18August2022' | sed '/49.7.20/d'
$ echo '11.2.33.123|19August2022' | sed '/49.7.20/d'
11.2.33.123|19August2022

Peut-être qu'il y a une subtilité entre différentes versions de
sed utilisées ?  Mais j'ai essayé avec GNU sed et busybox sed
sans avoir de problèmes :

$ sed --version
sed (GNU sed) 4.8
Packaged by Debian
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
.
[…]

$ busybox sed --version
This is not GNU sed version 4.0

Bonne soirée,
-- 
Étienne Mollier 
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/tty1, please excuse my verbosity.


signature.asc
Description: PGP signature


Re: sed : suppression de lignes

2022-09-09 Par sujet Jérémy Prego

Oupss, j'ai oublier le /d de la fin de la commande ... désolé

sed '/49\.7\.20/d' /tmp/file.txt

Jerem
Le 09/09/2022 à 19:47, Jérémy Prego a écrit :

Bonjour,

et en échappant les "." ?

genre:
sed '/49\.7\.20/' /tmp/file.txt

Jerem
Le 09/09/2022 à 19:22, antoine.valmer a écrit :

Bonjour à tous,
Dans un fichier texte, j'ai ce type de lignes :
49.7.20.111|17August2022
49.7.20.120|18August2022

Je souhaite supprimer toutes celles qui ont cette expression :
"49.7.20."
J'ai tenté cette commande :
sed '/49.7.20/d'
mais elle n'efface aucune ligne contenant "49.7.20."
@+ et merci.
A. Valmer







Re: sed : suppression de lignes

2022-09-09 Par sujet Jérémy Prego

Bonjour,

et en échappant les "." ?

genre:
sed '/49\.7\.20/' /tmp/file.txt

Jerem
Le 09/09/2022 à 19:22, antoine.valmer a écrit :

Bonjour à tous,
Dans un fichier texte, j'ai ce type de lignes :
49.7.20.111|17August2022
49.7.20.120|18August2022

Je souhaite supprimer toutes celles qui ont cette expression :
"49.7.20."
J'ai tenté cette commande :
sed '/49.7.20/d'
mais elle n'efface aucune ligne contenant "49.7.20."
@+ et merci.
A. Valmer





Re: sed : suppression de lignes

2022-09-09 Par sujet Basile Starynkevitch


On 09/09/2022 19:22, antoine.valmer wrote:

Bonjour à tous,
Dans un fichier texte, j'ai ce type de lignes :
49.7.20.111|17August2022
49.7.20.120|18August2022

Je souhaite supprimer toutes celles qui ont cette expression :
"49.7.20."
J'ai tenté cette commande :
sed '/49.7.20/d'
mais elle n'efface aucune ligne contenant "49.7.20."
@+ et merci.
A. Valmer



Je suggère de lire avec attention la difficile documentation de sed, par 
exemple (en anglais) https://man7.org/linux/man-pages/man1/sed.1.html 
puis d'essayer peut-être


sed '1,$/49.7.20/d'


Bien sûr, *essayez cette commande sur des données _fictives_* d'abord.


Et je cherche des partenaires intéressés par RefPerSys en 
http://refpersys.org/


Librement

--
Basile Starynkevitch
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/


sed : suppression de lignes

2022-09-09 Par sujet antoine.valmer
Bonjour à tous,
Dans un fichier texte, j'ai ce type de lignes :
49.7.20.111|17August2022
49.7.20.120|18August2022

Je souhaite supprimer toutes celles qui ont cette expression :
"49.7.20."
J'ai tenté cette commande :
sed '/49.7.20/d' 
mais elle n'efface aucune ligne contenant "49.7.20."
@+ et merci.
A. Valmer