Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Pierre Giraud
Bonjour, Le 28/01/2021 Í 15:08, David Martin a écrit :
Bonjour, Je cherche, dans un répertoire qui contient des fichiers de log (environ 600) qui contiennent eux memes une 10aine de ligne max chacuns, le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui sont contenue dans la première ligne des fichiers. Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í un autre fichier. Les lignes ressemble Í ceci : CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs PC-00034-BLA win10 172.16.78.30 1380 j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier. awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes et aussi avec grep j'ai toute les lignes grep -r --include="*.log" -i "professeurs" Avez-vous une idée ? -- david martin
Je cherche, dans un répertoire qui contient des fichiers de log (environ
600) qui contiennent eux memes une 10aine de ligne max chacuns,
le moyen d'en extraire deux chaines de caractères (élèves ou
professeurs) qui sont contenue dans la première ligne des fichiers.
Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et
passer Í un autre fichier.
Les lignes ressemble Í ceci :
CONNECTIONÂ Web 27 Jan 2021 06:50Â jean.dujardin professeurs
PC-00034-BLA win10 172.16.78.30Â 1380
j'aimerai extraire professeurs et le nom du pc, et passer Í un autre
fichier.
awk '{print $8,$9}' fichier.log pour m'extraire professeurs et
PC-00034-BLAÂ fonctionne mais sur un fichier mais du coup j'ai toutes
les lignes
et aussi avec grep j'ai toute les lignes
grep -r --include="*.log" -i "professeurs"Â
Bonjour, Le 28/01/2021 Í 15:08, David Martin a écrit :
Bonjour, Je cherche, dans un répertoire qui contient des fichiers de log (environ 600) qui contiennent eux memes une 10aine de ligne max chacuns, le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui sont contenue dans la première ligne des fichiers. Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í un autre fichier. Les lignes ressemble Í ceci : CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs PC-00034-BLA win10 172.16.78.30 1380 j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier. awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes et aussi avec grep j'ai toute les lignes grep -r --include="*.log" -i "professeurs" Avez-vous une idée ? -- david martin
De: "David Martin" À: " French" Envoyé: Jeudi 28 Janvier 2021 15:08:19 Objet: [HS] find et recherche d'une expression dans des fichiers Bonjour, Je cherche, dans un répertoire qui contient des fichiers de log (environ 600) qui contiennent eux memes une 10aine de ligne max chacuns, le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui sont contenue dans la première ligne des fichiers. Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í un autre fichier. Les lignes ressemble Í ceci : CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs PC-00034-BLA win10 172.16.78.30 1380 j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier. awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes et aussi avec grep j'ai toute les lignes grep -r --include="*.log" -i "professeurs" Avez-vous une idée ? -- david martin
Bonjour David, en premier c'est le fichier auth.log qu'il faut parser sudo find /var/log -name auth.log (rentrer le mot de passe) /var/log/auth.log ensuite : sudo cat /var/log/auth.log | grep '(professeurs|PC-00034-BLA)' désolé, mais je n'ai pas le fichier log sous les yeux et je conseille de consulter les liens suivants pour affiner les choses : https://living-sun.com/fr/grep/278684-how-to-grep-two-patterns-at-once-grep.html https://www.tuteurs.ens.fr/unix/exercices/solutions/grep-sol.html solution avancée : https://www.golinuxcloud.com/find-exec-multiple-commands-examples-unix/#Combine_find_exec_with_grep_in_Linux_or_Unix merci pour ton aimable attention Bien Í toi Bernard
----- Mail original -----
De: "David Martin" <damart.vidin@gmail.com>
À: "debian-user-french@lists.debian.org French"
<debian-user-french@lists.debian.org>
Envoyé: Jeudi 28 Janvier 2021 15:08:19
Objet: [HS] find et recherche d'une expression dans des fichiers
Bonjour,
Je cherche, dans un répertoire qui contient des fichiers de log
(environ 600) qui contiennent eux memes une 10aine de ligne max
chacuns,
le moyen d'en extraire deux chaines de caractères (élèves ou
professeurs) qui sont contenue dans la première ligne des fichiers.
Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et
passer Í un autre fichier.
Les lignes ressemble Í ceci :
CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs
PC-00034-BLA win10 172.16.78.30 1380
j'aimerai extraire professeurs et le nom du pc, et passer Í un autre
fichier.
awk '{print $8,$9}' fichier.log pour m'extraire professeurs et
PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes
les lignes
et aussi avec grep j'ai toute les lignes
grep -r --include="*.log" -i "professeurs"
Avez-vous une idée ?
--
david martin
Bonjour David,
en premier c'est le fichier auth.log qu'il faut parser
sudo find /var/log -name auth.log
(rentrer le mot de passe)
/var/log/auth.log
ensuite :
sudo cat /var/log/auth.log | grep '(professeurs|PC-00034-BLA)'
désolé, mais je n'ai pas le fichier log sous les yeux et je conseille
de consulter les liens suivants pour affiner les choses :
De: "David Martin" À: " French" Envoyé: Jeudi 28 Janvier 2021 15:08:19 Objet: [HS] find et recherche d'une expression dans des fichiers Bonjour, Je cherche, dans un répertoire qui contient des fichiers de log (environ 600) qui contiennent eux memes une 10aine de ligne max chacuns, le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui sont contenue dans la première ligne des fichiers. Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í un autre fichier. Les lignes ressemble Í ceci : CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs PC-00034-BLA win10 172.16.78.30 1380 j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier. awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes et aussi avec grep j'ai toute les lignes grep -r --include="*.log" -i "professeurs" Avez-vous une idée ? -- david martin
Bonjour David, en premier c'est le fichier auth.log qu'il faut parser sudo find /var/log -name auth.log (rentrer le mot de passe) /var/log/auth.log ensuite : sudo cat /var/log/auth.log | grep '(professeurs|PC-00034-BLA)' désolé, mais je n'ai pas le fichier log sous les yeux et je conseille de consulter les liens suivants pour affiner les choses : https://living-sun.com/fr/grep/278684-how-to-grep-two-patterns-at-once-grep.html https://www.tuteurs.ens.fr/unix/exercices/solutions/grep-sol.html solution avancée : https://www.golinuxcloud.com/find-exec-multiple-commands-examples-unix/#Combine_find_exec_with_grep_in_Linux_or_Unix merci pour ton aimable attention Bien Í toi Bernard
Pierre Meurisse
On Thu, Jan 28, 2021 at 03:08:19PM +0100, David Martin wrote:
Bonjour, Je cherche, dans un répertoire qui contient des fichiers de log (environ 600) qui contiennent eux memes une 10aine de ligne max chacuns, le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui sont contenue dans la première ligne des fichiers. Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í un autre fichier. Les lignes ressemble Í ceci : CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs PC-00034-BLA win10 172.16.78.30 1380 j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier. awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes et aussi avec grep j'ai toute les lignes grep -r --include="*.log" -i "professeurs" Avez-vous une idée ?
Avec head -n 1 fichier.txt on obtient la première ligne de fichier.txt
-- david martin
-- Pierre Meurisse Merci de noter que ma nouvelle adresse est : Je continue provisoirement de recevoir les courriers envoyés aux adresses précédentes.
On Thu, Jan 28, 2021 at 03:08:19PM +0100, David Martin wrote:
Bonjour,
Je cherche, dans un répertoire qui contient des fichiers de log (environ 600)
qui contiennent eux memes une 10aine de ligne max chacuns,
le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui
sont contenue dans la première ligne des fichiers.
Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í
un autre fichier.
Les lignes ressemble Í ceci :
CONNECTIONÂ Web 27 Jan 2021 06:50Â jean.dujardin professeurs PC-00034-BLA win10
172.16.78.30Â 1380
j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier.
awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLAÂ
fonctionne mais sur un fichier mais du coup j'ai toutes les lignes
et aussi avec grep j'ai toute les lignes
grep -r --include="*.log" -i "professeurs"Â
Avez-vous une idée ?
Avec
head -n 1 fichier.txt
on obtient la première ligne de fichier.txt
--
david martin
--
Pierre Meurisse
Merci de noter que ma nouvelle adresse est : pierre.meurisse59@free.fr
Je continue provisoirement de recevoir les courriers envoyés
aux adresses précédentes.
On Thu, Jan 28, 2021 at 03:08:19PM +0100, David Martin wrote:
Bonjour, Je cherche, dans un répertoire qui contient des fichiers de log (environ 600) qui contiennent eux memes une 10aine de ligne max chacuns, le moyen d'en extraire deux chaines de caractères (élèves ou professeurs) qui sont contenue dans la première ligne des fichiers. Je n'arrive pas Í extraire uniquement la permiere ligne du fichier et passer Í un autre fichier. Les lignes ressemble Í ceci : CONNECTION Web 27 Jan 2021 06:50 jean.dujardin professeurs PC-00034-BLA win10 172.16.78.30 1380 j'aimerai extraire professeurs et le nom du pc, et passer Í un autre fichier. awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes et aussi avec grep j'ai toute les lignes grep -r --include="*.log" -i "professeurs" Avez-vous une idée ?
Avec head -n 1 fichier.txt on obtient la première ligne de fichier.txt
-- david martin
-- Pierre Meurisse Merci de noter que ma nouvelle adresse est : Je continue provisoirement de recevoir les courriers envoyés aux adresses précédentes.
Daniel Caillibaud
Le 28/01/21 Í 15:53, Pierre Meurisse a écrit :
head -n 1 fichier.txt on obtient la première ligne de fichier.txt
C'est méthode la plus efficace pour récupérer toute la ligne sans traitement. Si tu veux ajouter un filtre, tu peux ajouter du `|grep …`, mais tu peux aussi utiliser sed pour avoir tout dans une seule commande sed -e '1 expr' fichier.txt ou expr est une expression sed 1 est le numéro de la ligne, qui peut être remplacé par une plage, `3,5 expr` pour appliquer l'expression sur les lignes 3 Í 5, ou `/regex1/,/regex2/ expr` pour appliquer l'expression de la première ligne qui match regex1 Í la la première qui suit et match regex2 (et on peut mixer regex et numéro, $ pour indiquer la dernière ligne). Attention aux format sed des regex, en général j'utilise sed -re '…' pour que [] et () soient interprétés comme d'habitude (sinon il faut les échapper pour qu'ils soient interprétés, c'est l'inverse du fonctionnement habituel) Ici, si tu veux le nom du pc qui est sur la 1re ligne, seulement si c'est un prof ça pourrait être qqchose comme sed -nre '1 s/.*professeurs ([^ ]+) .*/1/ p' fichier -n => ne rien afficher par défaut s/recherche/remplacement/ => substitution p => afficher si qqchose a été substitué Mais suivant les cas, ça peut être plus simple avec head + awk, si tu veux toujours les champs 8 & 9 de la première ligne de chaque fichier ça peut être plus simple avec head -1 dossier/*.log|awk '{print $8 " " $9}' À priori tu peux tout faire avec sed ou awk, mais parfois c'est plus simple ou plus lisible d'enchaÍ®ner des head, tail, grep, tr, awk, sed, … …|sort|uniq ou …|sort|uniq -c sont aussi utiles Bonne lecture des manpages ;-) (tu trouveras aussi de l'aide sur le net pour chacune de ces commandes) -- Daniel Un soldat doit être prêt a mourir pour sa patrie, même au péril de sa vie. Henri Monnier
Le 28/01/21 Í 15:53, Pierre Meurisse <pierre.meurisse59@free.fr> a écrit :
head -n 1 fichier.txt
on obtient la première ligne de fichier.txt
C'est méthode la plus efficace pour récupérer toute la ligne sans traitement.
Si tu veux ajouter un filtre, tu peux ajouter du `|grep …`, mais tu peux aussi utiliser sed
pour avoir tout dans une seule commande
sed -e '1 expr' fichier.txt
ou expr est une expression sed
1 est le numéro de la ligne, qui peut être remplacé par une
plage, `3,5 expr` pour appliquer l'expression sur les lignes 3 Í 5, ou
`/regex1/,/regex2/ expr` pour appliquer l'expression de la première ligne qui match
regex1 Í la la première qui suit et match regex2 (et on peut mixer regex et numéro, $ pour
indiquer la dernière ligne).
Attention aux format sed des regex, en général j'utilise sed -re '…' pour que [] et () soient
interprétés comme d'habitude (sinon il faut les échapper pour qu'ils soient interprétés, c'est
l'inverse du fonctionnement habituel)
Ici, si tu veux le nom du pc qui est sur la 1re ligne, seulement si c'est un prof ça pourrait
être qqchose comme
sed -nre '1 s/.*professeurs ([^ ]+) .*/1/ p' fichier
-n => ne rien afficher par défaut
s/recherche/remplacement/ => substitution
p => afficher si qqchose a été substitué
Mais suivant les cas, ça peut être plus simple avec head + awk, si tu veux toujours les champs
8 & 9 de la première ligne de chaque fichier ça peut être plus simple avec
head -1 dossier/*.log|awk '{print $8 " " $9}'
À priori tu peux tout faire avec sed ou awk, mais parfois c'est plus simple ou plus lisible
d'enchaÍ®ner des head, tail, grep, tr, awk, sed, …
…|sort|uniq
ou
…|sort|uniq -c
sont aussi utiles
Bonne lecture des manpages ;-)
(tu trouveras aussi de l'aide sur le net pour chacune de ces commandes)
--
Daniel
Un soldat doit être prêt a mourir pour sa patrie, même au péril de sa vie.
Henri Monnier
head -n 1 fichier.txt on obtient la première ligne de fichier.txt
C'est méthode la plus efficace pour récupérer toute la ligne sans traitement. Si tu veux ajouter un filtre, tu peux ajouter du `|grep …`, mais tu peux aussi utiliser sed pour avoir tout dans une seule commande sed -e '1 expr' fichier.txt ou expr est une expression sed 1 est le numéro de la ligne, qui peut être remplacé par une plage, `3,5 expr` pour appliquer l'expression sur les lignes 3 Í 5, ou `/regex1/,/regex2/ expr` pour appliquer l'expression de la première ligne qui match regex1 Í la la première qui suit et match regex2 (et on peut mixer regex et numéro, $ pour indiquer la dernière ligne). Attention aux format sed des regex, en général j'utilise sed -re '…' pour que [] et () soient interprétés comme d'habitude (sinon il faut les échapper pour qu'ils soient interprétés, c'est l'inverse du fonctionnement habituel) Ici, si tu veux le nom du pc qui est sur la 1re ligne, seulement si c'est un prof ça pourrait être qqchose comme sed -nre '1 s/.*professeurs ([^ ]+) .*/1/ p' fichier -n => ne rien afficher par défaut s/recherche/remplacement/ => substitution p => afficher si qqchose a été substitué Mais suivant les cas, ça peut être plus simple avec head + awk, si tu veux toujours les champs 8 & 9 de la première ligne de chaque fichier ça peut être plus simple avec head -1 dossier/*.log|awk '{print $8 " " $9}' À priori tu peux tout faire avec sed ou awk, mais parfois c'est plus simple ou plus lisible d'enchaÍ®ner des head, tail, grep, tr, awk, sed, … …|sort|uniq ou …|sort|uniq -c sont aussi utiles Bonne lecture des manpages ;-) (tu trouveras aussi de l'aide sur le net pour chacune de ces commandes) -- Daniel Un soldat doit être prêt a mourir pour sa patrie, même au péril de sa vie. Henri Monnier
Marc Chantreux
salut, je tombe dans le thread et je lis
awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLA fonctionne mais sur un fichier mais du coup j'ai toutes les lignes
du coup awk '{print $8,$9 ; exit }' fichier.log et si tu utilises gawk awk '{print $8,$9 ; nextfile }' *.log a+ marc
salut,
je tombe dans le thread et je lis
> awk '{print $8,$9}' fichier.log pour m'extraire professeurs et PC-00034-BLAÂ
> fonctionne mais sur un fichier mais du coup j'ai toutes les lignes