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.
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s) fr.comp.os.linux.configuration, math140 a proposé :
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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que tu utilise une autre commande
sed -e "s/<motif>//" <fichier>fichier.propre te crée un fichier propre fichier.propre sans *la première occurence* de <motif> dans chaque ligne.
Si tu as un fichier organisé en champs <champ1> <champ2> <champ3> ... et que tu veux obtenir un fichier avec <champ1> <champ3> ...
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done >fichier.propre (il y a d'autres possibilités)
Si tu veux un fichier qui contiennent toutes les lignes *qui ne contiennent pas* <motif> c'est bien grep :
grep -v <motif> fichier
-- http://www.bidart.net/anniversaire
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s)
fr.comp.os.linux.configuration, math140 a proposé :
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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que
tu utilise une autre commande
sed -e "s/<motif>//" <fichier>fichier.propre te crée un fichier propre
fichier.propre sans *la première occurence* de <motif> dans chaque
ligne.
Si tu as un fichier organisé en champs
<champ1> <champ2> <champ3> ...
et que tu veux obtenir un fichier avec
<champ1> <champ3> ...
Tu peux faire :
cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ;
echo $@; done >fichier.propre
(il y a d'autres possibilités)
Si tu veux un fichier qui contiennent toutes les lignes *qui ne
contiennent pas* <motif> c'est bien grep :
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s) fr.comp.os.linux.configuration, math140 a proposé :
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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que tu utilise une autre commande
sed -e "s/<motif>//" <fichier>fichier.propre te crée un fichier propre fichier.propre sans *la première occurence* de <motif> dans chaque ligne.
Si tu as un fichier organisé en champs <champ1> <champ2> <champ3> ... et que tu veux obtenir un fichier avec <champ1> <champ3> ...
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done >fichier.propre (il y a d'autres possibilités)
Si tu veux un fichier qui contiennent toutes les lignes *qui ne contiennent pas* <motif> c'est bien grep :
grep -v <motif> fichier
-- http://www.bidart.net/anniversaire
Hugolino
Le 10-04-2011, Jo Engo a écrit :
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s) fr.comp.os.linux.configuration, math140 a proposé :
> 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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que tu utilise une autre commande
Il suffit de redigirer la sortie de "grep -v motif" vers un nouveau fichier.
sed -e "s/<motif>//" <fichier>fichier.propre te crée un fichier propre fichier.propre sans *la première occurence* de <motif> dans chaque ligne.
sed -e "s/<motif//g" pour supprimer toutes les occurences.
Si tu as un fichier organisé en champs <champ1> <champ2> <champ3> ... et que tu veux obtenir un fichier avec <champ1> <champ3> ...
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done >fichier.propre
UUOC !!
(il y a d'autres possibilités)
Oui.
grep -v "motif" fichier-lu > fichier-sortie
Si tu veux un fichier qui contiennent toutes les lignes *qui ne contiennent pas* <motif> c'est bien grep :
grep -v <motif> fichier
Bin voilà ;-)
-- Quelqu'un ici a dit qu'il y avait une patch pour fider les bugs de RedHat5 sur leur page ( www.redhat.com ) mais j'ai ps trouver ou qqun pourrias me shooter l'adresse svp? -+- Psionic in Guide du Linuxien pervers, "Tous drogués !!" -+-
Le 10-04-2011, Jo Engo <yl@bidart.net> a écrit :
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s)
fr.comp.os.linux.configuration, math140 a proposé :
> 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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que
tu utilise une autre commande
Il suffit de redigirer la sortie de "grep -v motif" vers un nouveau
fichier.
sed -e "s/<motif>//" <fichier>fichier.propre te crée un fichier propre
fichier.propre sans *la première occurence* de <motif> dans chaque
ligne.
sed -e "s/<motif//g" pour supprimer toutes les occurences.
Si tu as un fichier organisé en champs
<champ1> <champ2> <champ3> ...
et que tu veux obtenir un fichier avec
<champ1> <champ3> ...
Tu peux faire :
cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ;
echo $@; done >fichier.propre
UUOC !!
(il y a d'autres possibilités)
Oui.
grep -v "motif" fichier-lu > fichier-sortie
Si tu veux un fichier qui contiennent toutes les lignes *qui ne
contiennent pas* <motif> c'est bien grep :
grep -v <motif> fichier
Bin voilà ;-)
--
Quelqu'un ici a dit qu'il y avait une patch pour fider les bugs de RedHat5
sur leur page ( www.redhat.com ) mais j'ai ps trouver ou qqun pourrias me
shooter l'adresse svp?
-+- Psionic in Guide du Linuxien pervers, "Tous drogués !!" -+-
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s) fr.comp.os.linux.configuration, math140 a proposé :
> 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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que tu utilise une autre commande
Il suffit de redigirer la sortie de "grep -v motif" vers un nouveau fichier.
sed -e "s/<motif>//" <fichier>fichier.propre te crée un fichier propre fichier.propre sans *la première occurence* de <motif> dans chaque ligne.
sed -e "s/<motif//g" pour supprimer toutes les occurences.
Si tu as un fichier organisé en champs <champ1> <champ2> <champ3> ... et que tu veux obtenir un fichier avec <champ1> <champ3> ...
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done >fichier.propre
UUOC !!
(il y a d'autres possibilités)
Oui.
grep -v "motif" fichier-lu > fichier-sortie
Si tu veux un fichier qui contiennent toutes les lignes *qui ne contiennent pas* <motif> c'est bien grep :
grep -v <motif> fichier
Bin voilà ;-)
-- Quelqu'un ici a dit qu'il y avait une patch pour fider les bugs de RedHat5 sur leur page ( www.redhat.com ) mais j'ai ps trouver ou qqun pourrias me shooter l'adresse svp? -+- Psionic in Guide du Linuxien pervers, "Tous drogués !!" -+-
Netsurfeur
Bonjour,
Le 10/04/2011 11:18, Jo Engo a écrit :
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s) fr.comp.os.linux.configuration, math140 a proposé :
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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que tu utilise une autre commande
sed -e "s/<motif>//"<fichier>fichier.propre te crée un fichier propre fichier.propre sans *la première occurence* de<motif> dans chaque ligne.
Si tu as un fichier organisé en champs <champ1> <champ2> <champ3> ... et que tu veux obtenir un fichier avec <champ1> <champ3> ...
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done>fichier.propre (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3- < fichier > fichier.propre
Si tu veux un fichier qui contiennent toutes les lignes *qui ne contiennent pas*<motif> c'est bien grep :
grep -v<motif> fichier
-- Netsurfeur
Bonjour,
Le 10/04/2011 11:18, Jo Engo a écrit :
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s)
fr.comp.os.linux.configuration, math140 a proposé :
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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que
tu utilise une autre commande
sed -e "s/<motif>//"<fichier>fichier.propre te crée un fichier propre
fichier.propre sans *la première occurence* de<motif> dans chaque
ligne.
Si tu as un fichier organisé en champs
<champ1> <champ2> <champ3> ...
et que tu veux obtenir un fichier avec
<champ1> <champ3> ...
Tu peux faire :
cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ;
echo $@; done>fichier.propre
(il y a d'autres possibilités)
Je ne commenterai pas les autres propositions.
Par contre, pour supprimer un champ dans un fichier, il y a plus simple:
cut -f1,3- < fichier > fichier.propre
Si tu veux un fichier qui contiennent toutes les lignes *qui ne
contiennent pas*<motif> c'est bien grep :
Bonjour, mardi 29 mars 2011 à 12:18:19, dans le(s) forum(s) fr.comp.os.linux.configuration, math140 a proposé :
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.
grep va te servir à trouver le motif. Pour le supprimmer, il faut que tu utilise une autre commande
sed -e "s/<motif>//"<fichier>fichier.propre te crée un fichier propre fichier.propre sans *la première occurence* de<motif> dans chaque ligne.
Si tu as un fichier organisé en champs <champ1> <champ2> <champ3> ... et que tu veux obtenir un fichier avec <champ1> <champ3> ...
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done>fichier.propre (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3- < fichier > fichier.propre
Si tu veux un fichier qui contiennent toutes les lignes *qui ne contiennent pas*<motif> c'est bien grep :
grep -v<motif> fichier
-- Netsurfeur
Hugolino
Le 11-04-2011, Netsurfeur a écrit :
Le 10/04/2011 11:18, Jo Engo a écrit : > > Tu peux faire : > cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; > echo $@; done>fichier.propre > (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3- < fichier > fichier.propre
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 ?
[xp fcou ; fu2 fcolc ]
-- Des astronautes ont rencontré Dieu... et Elle est noire. Hugo (né il y a 1 481 973 032 secondes)
Le 11-04-2011, Netsurfeur <net_surfeur@hotmail.com> a écrit :
Le 10/04/2011 11:18, Jo Engo a écrit :
>
> Tu peux faire :
> cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ;
> echo $@; done>fichier.propre
> (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions.
Par contre, pour supprimer un champ dans un fichier, il y a plus simple:
cut -f1,3- < fichier > fichier.propre
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 hugo@Deborah /var/log/apache2 $ time grep -v "Apr" error.log > ~/error-grep.log
real 0m0.012s
user 0m0.008s
sys 0m0.004s
12:32:38 hugo@Deborah /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 ?
[xp fcou ; fu2 fcolc ]
--
Des astronautes ont rencontré Dieu... et Elle est noire.
Hugo (né il y a 1 481 973 032 secondes)
Le 10/04/2011 11:18, Jo Engo a écrit : > > Tu peux faire : > cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; > echo $@; done>fichier.propre > (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3- < fichier > fichier.propre
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 ?
[xp fcou ; fu2 fcolc ]
-- Des astronautes ont rencontré Dieu... et Elle est noire. Hugo (né il y a 1 481 973 032 secondes)
Nicolas George
Hugolino , dans le message , a écrit :
(temps miminum obtenus après avoir répété 4 fois la commande)
Des temps aussi courts ne sont pas significatifs. Concatène ton fichier error.log une centaine de fois avec lui-même, tu commenceras à avoir quelque chose.
Hugolino , dans le message
<slrniq5mi5.tun.hugolino@Deborah.Rock-n-Roll.org>, a écrit :
(temps miminum obtenus après avoir répété 4 fois la commande)
Des temps aussi courts ne sont pas significatifs. Concatène ton fichier
error.log une centaine de fois avec lui-même, tu commenceras à avoir quelque
chose.
(temps miminum obtenus après avoir répété 4 fois la commande)
Des temps aussi courts ne sont pas significatifs. Concatène ton fichier error.log une centaine de fois avec lui-même, tu commenceras à avoir quelque chose.
Netsurfeur
Le 11/04/2011 12:39, Hugolino a écrit :
Le 11-04-2011, Netsurfeur a écrit :
Le 10/04/2011 11:18, Jo Engo a écrit :
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done>fichier.propre (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3-< fichier> fichier.propre
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...
Je ne vois pas comment une commande cut appelée une seule fois pourrait être répétée pour chaque ligne du fichier d'entrée.
Quel est l'intérêt de comparer cut et grep ? L'un supprime des colonnes, l'autre des lignes.
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 ?
[xp fcou ; fu2 fcolc ]
-- Netsurfeur
Le 11/04/2011 12:39, Hugolino a écrit :
Le 11-04-2011, Netsurfeur<net_surfeur@hotmail.com> a écrit :
Le 10/04/2011 11:18, Jo Engo a écrit :
Tu peux faire :
cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ;
echo $@; done>fichier.propre
(il y a d'autres possibilités)
Je ne commenterai pas les autres propositions.
Par contre, pour supprimer un champ dans un fichier, il y a plus simple:
cut -f1,3-< fichier> fichier.propre
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...
Je ne vois pas comment une commande cut appelée une seule fois pourrait
être répétée pour chaque ligne du fichier d'entrée.
Quel est l'intérêt de comparer cut et grep ?
L'un supprime des colonnes, l'autre des lignes.
12:32:24 hugo@Deborah /var/log/apache2 $ time grep -v "Apr" error.log> ~/error-grep.log
real 0m0.012s
user 0m0.008s
sys 0m0.004s
12:32:38 hugo@Deborah /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 ?
Tu peux faire : cat fichier|while read ligne do set ligne; echo -n $1; shift ; shift ; echo $@; done>fichier.propre (il y a d'autres possibilités)
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3-< fichier> fichier.propre
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...
Je ne vois pas comment une commande cut appelée une seule fois pourrait être répétée pour chaque ligne du fichier d'entrée.
Quel est l'intérêt de comparer cut et grep ? L'un supprime des colonnes, l'autre des lignes.
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 ?
[xp fcou ; fu2 fcolc ]
-- Netsurfeur
Hugolino
Le 11-04-2011, Nicolas George <nicolas$ a écrit :
Hugolino , dans le message , a écrit : > (temps miminum obtenus après avoir répété 4 fois la commande)
Des temps aussi courts ne sont pas significatifs. Concatène ton fichier error.log une centaine de fois avec lui-même, tu commenceras à avoir quelque chose.
13:49:04 ~ $ time grep -v "Apr" big-access.log > ~/big-access-grep.log real 0m1.016s user 0m0.668s sys 0m0.288s 13:50:53 ~ $ time cut -d " " -f1,3- < big-access.log > ~/big-access-cut.log real 0m23.343s user 0m4.616s sys 0m6.220s (temps miminum obtenus après avoir répété 4 fois la commande)
> 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... > Mais peut-être pas pour la raison que j'avance... > Un avis de spécialiste ?
Les conclusions sont sans appel en faveur de grep, mais le test avec cut est tellement long qu'avec un 'top', on voit bien que cut n'est pas lancé plusieurs fois, c'est donc sans doute qu'il lui faut 20 fois plus de temps pour parcourir les deux millions et quelques lignes du fichier.
-- A mathematical formula should never be "owned" by anybody ! Mathematics belong to God. -+- Digital Typography, Donald E. Knuth -+- Hugo (né il y a 1 481 979 135 secondes)
Le 11-04-2011, Nicolas George <nicolas$george@salle-s.org> a écrit :
Hugolino , dans le message
<slrniq5mi5.tun.hugolino@Deborah.Rock-n-Roll.org>, a écrit :
> (temps miminum obtenus après avoir répété 4 fois la commande)
Des temps aussi courts ne sont pas significatifs. Concatène ton
fichier error.log une centaine de fois avec lui-même, tu commenceras
à avoir quelque chose.
13:49:04 hugo@Deborah ~ $ time grep -v "Apr" big-access.log > ~/big-access-grep.log
real 0m1.016s
user 0m0.668s
sys 0m0.288s
13:50:53 hugo@Deborah ~ $ time cut -d " " -f1,3- < big-access.log > ~/big-access-cut.log
real 0m23.343s
user 0m4.616s
sys 0m6.220s
(temps miminum obtenus après avoir répété 4 fois la commande)
> 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...
> Mais peut-être pas pour la raison que j'avance...
> Un avis de spécialiste ?
Les conclusions sont sans appel en faveur de grep, mais le test avec cut
est tellement long qu'avec un 'top', on voit bien que cut n'est pas
lancé plusieurs fois, c'est donc sans doute qu'il lui faut 20 fois plus
de temps pour parcourir les deux millions et quelques lignes du fichier.
--
A mathematical formula should never be "owned" by anybody !
Mathematics belong to God.
-+- Digital Typography, Donald E. Knuth -+-
Hugo (né il y a 1 481 979 135 secondes)
Hugolino , dans le message , a écrit : > (temps miminum obtenus après avoir répété 4 fois la commande)
Des temps aussi courts ne sont pas significatifs. Concatène ton fichier error.log une centaine de fois avec lui-même, tu commenceras à avoir quelque chose.
13:49:04 ~ $ time grep -v "Apr" big-access.log > ~/big-access-grep.log real 0m1.016s user 0m0.668s sys 0m0.288s 13:50:53 ~ $ time cut -d " " -f1,3- < big-access.log > ~/big-access-cut.log real 0m23.343s user 0m4.616s sys 0m6.220s (temps miminum obtenus après avoir répété 4 fois la commande)
> 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... > Mais peut-être pas pour la raison que j'avance... > Un avis de spécialiste ?
Les conclusions sont sans appel en faveur de grep, mais le test avec cut est tellement long qu'avec un 'top', on voit bien que cut n'est pas lancé plusieurs fois, c'est donc sans doute qu'il lui faut 20 fois plus de temps pour parcourir les deux millions et quelques lignes du fichier.
-- A mathematical formula should never be "owned" by anybody ! Mathematics belong to God. -+- Digital Typography, Donald E. Knuth -+- Hugo (né il y a 1 481 979 135 secondes)
Hugues
Ce cher Netsurfeur a posté :
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3- < fichier > fichier.propre
Je plussoie abondamment. grep n'a rien à voir avec le problème énoncé.
-- Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Ce cher Netsurfeur <net_surfeur@hotmail.com> a posté :
Je ne commenterai pas les autres propositions.
Par contre, pour supprimer un champ dans un fichier, il y a plus simple:
cut -f1,3- < fichier > fichier.propre
Je plussoie abondamment.
grep n'a rien à voir avec le problème énoncé.
Je ne commenterai pas les autres propositions. Par contre, pour supprimer un champ dans un fichier, il y a plus simple: cut -f1,3- < fichier > fichier.propre
Je plussoie abondamment. grep n'a rien à voir avec le problème énoncé.
-- Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Hugolino
Le 11-04-2011, Netsurfeur a écrit :
Le 11/04/2011 12:39, Hugolino a écrit : > Le 11-04-2011, Netsurfeur a écrit : >> >> Je ne commenterai pas les autres propositions. Par contre, pour >> supprimer un champ dans un fichier, il y a plus simple: cut >> -f1,3-< fichier> fichier.propre > > 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...
Je ne vois pas comment une commande cut appelée une seule fois pourrait être répétée pour chaque ligne du fichier d'entrée.
Moi non plus, mais je craignais modestement que cela soit plutôt dû à une cécité de ma part.
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.
--
le curseur et indéfiniment déporté vers la droite sans même que je ne bouge la souris,
T'aurais pas un bureau en pente ? :-))) Hugo (né il y a 1 481 979 166 secondes)
Le 11-04-2011, Netsurfeur <net_surfeur@hotmail.com> a écrit :
Le 11/04/2011 12:39, Hugolino a écrit :
> Le 11-04-2011, Netsurfeur<net_surfeur@hotmail.com> a écrit :
>>
>> Je ne commenterai pas les autres propositions. Par contre, pour
>> supprimer un champ dans un fichier, il y a plus simple: cut
>> -f1,3-< fichier> fichier.propre
>
> 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...
Je ne vois pas comment une commande cut appelée une seule fois pourrait
être répétée pour chaque ligne du fichier d'entrée.
Moi non plus, mais je craignais modestement que cela soit plutôt dû à
une cécité de ma part.
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.
--
le curseur et indéfiniment déporté vers la droite sans même
que je ne bouge la souris,
T'aurais pas un bureau en pente ? :-)))
Hugo (né il y a 1 481 979 166 secondes)
Le 11/04/2011 12:39, Hugolino a écrit : > Le 11-04-2011, Netsurfeur a écrit : >> >> Je ne commenterai pas les autres propositions. Par contre, pour >> supprimer un champ dans un fichier, il y a plus simple: cut >> -f1,3-< fichier> fichier.propre > > 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...
Je ne vois pas comment une commande cut appelée une seule fois pourrait être répétée pour chaque ligne du fichier d'entrée.
Moi non plus, mais je craignais modestement que cela soit plutôt dû à une cécité de ma part.
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.
--
le curseur et indéfiniment déporté vers la droite sans même que je ne bouge la souris,
T'aurais pas un bureau en pente ? :-))) Hugo (né il y a 1 481 979 166 secondes)
Hugues
Ce cher Hugolino a posté :
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.
Surtout pour une commande qui ne fait *PAS* le boulot demandé.. Autant lui dire tout de suite :
$ : > /dev/null
ça va vachement plus vite...
-- Hugues Hiegel [http://www.hiegel.fr/~hugues/]
...et ça sert à rien.
Ce cher Hugolino <hugolino@free.fr> a posté :
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.
Surtout pour une commande qui ne fait *PAS* le boulot demandé..
Autant lui dire tout de suite :