#1 Le 21/07/2020, à 20:20
- Marmotte2405
[Résolu] Aide pour optimiser une commande grep
Bonsoir tout le monde,
Il y a bien longtemps que je n'étais pas venue ici (et presque autant que je n'avais pas fait de linux).
Je cherche a optimiser une commande grep
Voila le genre de contenu de fichier que j'ai :
[73837] 2020/07/21 5:41:51.517 : [INFO] Action 'une' lancée par elle
[73983] 2020/07/21 5:41:51.993 : [INFO] Action 'une' lancée par
[74188] 2020/07/21 5:41:52.457 : [INFO] Action 'deux' lancée par lui
[74356] 2020/07/21 5:41:52.988 : [INFO] Action 'trois' lancée par
[74356] 2020/07/21 5:41:52.988 : [INFO] Action 'trois' lancée par nous
[74548] 2020/07/21 5:41:53.495 : [INFO] Action 'quatre' lancée par moi
je cherche à extraire les lignes d'une date (2020/06/30) qui finissent par 'par' (en l’occurrence elles n'ont pas le nom d'utilisateur)
et à filtrer par l'action trois.
Exemple de commande que je fais :
d=$(date +%Y'/'%m'/'%d);grep $d mon_fichier.log | grep 'par$' | grep trois
Ca me ressort bien la ligne :
[74356] 2020/07/21 5:41:52.988 : [INFO] Action 'trois' lancée par
mais j'ai l'impression que ce n'est pas très optimal, est ce que quelqu'un peu me confirmer/aider?
Dernière modification par Marmotte2405 (Le 21/07/2020, à 22:05)
Hors ligne
#2 Le 21/07/2020, à 20:51
- Watael
Re : [Résolu] Aide pour optimiser une commande grep
salut,
grep "$d.*trois.*par\$" fichier
mais, le fichier ressemblant à un tableau, j'utiliserais awk, qui manipule des champs.
awk -vd="$d" '$2==d && $7=="'\''trois'\''" && $0~"par$"' fichier
Dernière modification par Watael (Le 21/07/2020, à 20:54)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 21/07/2020, à 20:58
- sputnick
Re : [Résolu] Aide pour optimiser une commande grep
Watael:
pourquoi tu backquote ton dollar dans grep ?
Pour le awk, plutot
$NF == "par"
Dernière modification par sputnick (Le 21/07/2020, à 20:58)
Il existe un tunnel obscur dans la lumière infinie. Lao-Tseu
https://sputnick.fr
Hors ligne
#4 Le 21/07/2020, à 21:31
- Watael
Re : [Résolu] Aide pour optimiser une commande grep
parce qu'il est entre guillemets, et non entre apostrophes, ce qui inhiberait son développement; il faut donc le protéger.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 21/07/2020, à 21:58
- sputnick
Re : [Résolu] Aide pour optimiser une commande grep
Non, pas besoin quand le dollar est seul à la fin, teste:
grep "bash$" /etc/passwd
Il existe un tunnel obscur dans la lumière infinie. Lao-Tseu
https://sputnick.fr
Hors ligne
#6 Le 21/07/2020, à 22:04
- Marmotte2405
Re : [Résolu] Aide pour optimiser une commande grep
Super merci pour l'aide, les 2 commandes (grep amélioré et awk) fonctionnent mais je dois avouer que pour moi la grep est plus facile à comprendre ^^
Hors ligne
#7 Le 21/07/2020, à 22:25
- Watael
Re : [Résolu] Aide pour optimiser une commande grep
Non, pas besoin quand le dollar est seul à la fin, teste:
grep "bash$" /etc/passwd
ah, oui ?!
merci.
Dernière modification par Watael (Le 21/07/2020, à 22:25)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne