Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

grep

16 réponses
Avatar
math140
Bonjour,

Les lignes de mon fichier sont structurées comme suit:
1 122.122.122.122 et etc
Je voudrais savoir comment je pourrait retiré le 122.122.122.122 de la ligne avec grep.

6 réponses

1 2
Avatar
Vivien MOREAU
On 2011-04-11, Hugolino wrote:

Le 11-04-2011, Netsurfeur a écrit :
[...]
Quel est l'intérêt de comparer cut et grep ?
L'un supprime des colonnes, l'autre des lignes.



L'intérêt est de donner une commande 20 fois plus rapide à l'auteur
original du fil.



$ cat truc
bla gla ta da
foo bar baz fubar
mais ou et donc
$ grep -v bar truc
bla gla ta da
mais ou et donc
$ cut -d' ' -f1,3- truc
bla ta da
foo baz fubar
mais et donc

Par l'exemple, comprends-tu mieux que les deux commandes n'ont
strictement rien à voir ? :-)

--
Vivien
Avatar
Hugolino
Le 11-04-2011, Vivien MOREAU <vpm+ a écrit :
On 2011-04-11, Hugolino wrote:

> Le 11-04-2011, Netsurfeur a écrit :
>> [...]
>> Quel est l'intérêt de comparer cut et grep ?
>> L'un supprime des colonnes, l'autre des lignes.
>
> L'intérêt est de donner une commande 20 fois plus rapide à l'auteur
> original du fil.

$ cat truc
bla gla ta da
foo bar baz fubar
mais ou et donc
$ grep -v bar truc
bla gla ta da
mais ou et donc
$ cut -d' ' -f1,3- truc
bla ta da
foo baz fubar
mais et donc

Par l'exemple, comprends-tu mieux que les deux commandes n'ont
strictement rien à voir ? :-)



Je sais bien que 'cut' est différent de 'grep', merci.

Et à relire le message peut clair de l'OP, je comprends la polémique qui
est en cours.

Il disait vouloir retirer "122.122.122.122" de chaque ligne de son
ficher, et grep est clairement indiqué dans ce cas (et 20 fois plus
rapide que cut), mais il parlait aussi de "deuxième champ"...

Et on est sans nouvelles de lui ;-))

--
Some people have told me they don't think a fat penguin really embodies the
grace of Linux, which just tells me they have never seen a angry penguin
charging at them in excess of 100mph. They'd be a lot more careful about what
they say if they had. -+- L.T. -+-
Avatar
Francois Lafont
Le 11/04/2011 18:54, Hugolino a écrit :

Il disait vouloir retirer "122.122.122.122" de chaque ligne de son
ficher, et grep est clairement indiqué dans ce cas



Non justement. Sauf erreur de ma part, pour retirer "122.122.122.122" de
chaque ligne, c'est plutôt cut.

Par contre, pour retirer chaque ligne contenant "122.122.122.122", c'est
plutôt grep.


--
François Lafont
Avatar
Hugolino
Le 11-04-2011, Francois Lafont a écrit :
Le 11/04/2011 18:54, Hugolino a écrit :

> Il disait vouloir retirer "122.122.122.122" de chaque ligne de son
> ficher, et grep est clairement indiqué dans ce cas

Non justement. Sauf erreur de ma part, pour retirer "122.122.122.122" de
chaque ligne, c'est plutôt cut.

Par contre, pour retirer chaque ligne contenant "122.122.122.122", c'est
plutôt grep.



Ayé !!!
Je viens de comprendre mon erreur...
Donc oui, mille fois oui. grep -v "motif" retire la ligne complete...

Toutes mes confuses.


--
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me
disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que
vous teniez vous meme la tronçonneuse"


Hugo (né il y a 1 481 997 210 secondes)
Avatar
Nicolas Richard
Le 11/04/11 21:12, Hugolino a écrit :
Le 11-04-2011, Francois Lafont a écrit :
Non justement. Sauf erreur de ma part, pour retirer "122.122.122.122" de
chaque ligne, c'est plutôt cut.

Par contre, pour retirer chaque ligne contenant "122.122.122.122", c'est
plutôt grep.



Ayé !!!
Je viens de comprendre mon erreur...
Donc oui, mille fois oui. grep -v "motif" retire la ligne complete...



À ce sujet, j'imaginais bêtement que grep -v -o ferait ce qu'il faut (-o
= only matching, -v = invert match), mais en fait non.

Ça semble donner la même sortie que grep -v, mais sans les fins de
ligne, et ce uniquement avec l'option --color sinon la sortie est vide.
(et comme j'ai --color=auto, je voyais à l'écran, mais je n'arrivais pas
à rediriger la sortie...)

Bref, exemple :
grep --color=always -o -v e << EOF
a b c
d e f
g h i
EOF

Comportement voulu ?

--
Nico.
Avatar
Lucas Levrel
Le 11 avril 2011, Hugolino a écrit :

Je me demande si ce one-liner n'appelle pas cut autant de fois qu'il y a
de lignes dans le fichier alors que grep -v "motif" fichier-lu > ficher-sortie
est sans doute beaucoup plus économe en temps machine...

12:32:24 /var/log/apache2 $ time grep -v "Apr" error.log > ~/error-grep.log
real 0m0.012s
user 0m0.008s
sys 0m0.004s
12:32:38 /var/log/apache2 $ time cut -d " " -f1,3- < error.log > ~/error-cut.log
real 0m0.084s
user 0m0.044s
sys 0m0.040s
(temps miminum obtenus après avoir répété 4 fois la commande)

Mais peut-être pas pour la raison que j'avance...
Un avis de spécialiste ?



diff ~/error-cut.log ~/error-grep.log
mais je ne suis pas spécialiste

--
LL
1 2