Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/11/2012, à 15:20

M0ss

[Résolu] Grep recherche chiffre.

Bonjour,

J'aimerais à l'aide de la commande grep ou autres de faire une recherche de 16 chiffres minimum dans des fichiers .txt (sous-dossier compris) et de me ressortir le nom des fichiers.

J'ai essayer une commande de ce type-ci mais sans résultat concluant:

grep -r ^[0-9]\ {16,\} *.txt

De plus j'ai essayer d'autres syntaxe pour grep mais il me ressortait uniquement le résultat obtenu et non pas le nom du fichier.

Merci d'avance pour votre aide.

Dernière modification par M0ss (Le 28/11/2012, à 12:59)

Hors ligne

#2 Le 26/11/2012, à 15:57

FrancisFDZ

Re : [Résolu] Grep recherche chiffre.

Pour une recherche de fichier, c'est  "grep -l chaine_recherchée fichiers_concernés"
Essaie d'abord à rajouter -l :

grep -l -r ^[0-9]\ {16,\} *.txt

-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne

#3 Le 26/11/2012, à 16:12

pingouinux

Re : [Résolu] Grep recherche chiffre.

Bonjour,
La bonne syntaxe est :

grep -lr '^[0-9]\{16,\}' *.txt

ou

grep -lrE '^[0-9]{16,}' *.txt

Ces commandes ne sont pas bonnes. Voir #7.

Dernière modification par pingouinux (Le 27/11/2012, à 07:57)

Hors ligne

#4 Le 26/11/2012, à 16:12

M0ss

Re : [Résolu] Grep recherche chiffre.

Okay merci pour ton aide mais aucun résultat ne s'affiche dans la console.

Hors ligne

#5 Le 26/11/2012, à 16:25

M0ss

Re : [Résolu] Grep recherche chiffre.

Merci pingouinux ça fonctionne pour mon fichier de test.

grep -lr '^[0-9]\{16,\}' *.txt

Hors ligne

#6 Le 26/11/2012, à 17:11

M0ss

Re : [Résolu] Grep recherche chiffre.

J'ai quand même un soucis,

Les fichiers textes ce situe dans différents dossier et sous-dossier, quand j’exécute la commande cité précédemment, grep me retourne qu'il ne trouve pas de fichier .txt

Hors ligne

#7 Le 26/11/2012, à 17:34

pingouinux

Re : [Résolu] Grep recherche chiffre.

M0ss #6 a écrit :

grep me retourne qu'il ne trouve pas de fichier .txt

Exact, je me suis trompé. On peut faire ceci :

shopt -s globstar
grep -l  '^[0-9]\{16,\}'  **/*.txt

Ajouté :
Autre solution

find -name "*.txt" -exec grep -l  '^[0-9]\{16,\}' {} \;

Dernière modification par pingouinux (Le 26/11/2012, à 17:40)

Hors ligne

#8 Le 26/11/2012, à 17:36

nesthib

Re : [Résolu] Grep recherche chiffre.

Ou sinon on peut utiliser find ou locate qui sont prévus pour wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#9 Le 26/11/2012, à 23:07

M0ss

Re : [Résolu] Grep recherche chiffre.

Salut,

La commande fonctionne mais ne va pas chercher plus loin dans les sous-dossier:

grep -l  '^[0-9]\{16,\}'  **/*.txt

elle s’exécute et se fini en en quelques secondes alors qu'il y a des milliers de fichiers à analyser

cette commande ne m'affiche rien:

find -name "*.txt" -exec grep -l  '^[0-9]\{16,\}' {} \;

Hors ligne

#10 Le 26/11/2012, à 23:39

aduxas

Re : [Résolu] Grep recherche chiffre.

M0ss a écrit :

cette commande ne m'affiche rien:

find -name "*.txt" -exec grep -l  '^[0-9]\{16,\}' {} \;

Il manque l'argument "chemin", p.e.

find . -name "*.txt" -exec grep -l  '^[0-9]\{16,\}' {} \;
M0ss a écrit :

La commande fonctionne mais ne va pas chercher plus loin dans les sous-dossier:

grep -l  '^[0-9]\{16,\}'  **/*.txt

Je pense que tu as oublié de mettre l'option globstar d'abord:

shopt -s globstar

Hors ligne

#11 Le 26/11/2012, à 23:55

M0ss

Re : [Résolu] Grep recherche chiffre.

Sa ne fonctionne toujours pas.

Quand je tape shopt il m'indique que globstar est sur ON

Hors ligne

#12 Le 27/11/2012, à 03:19

nesthib

Re : [Résolu] Grep recherche chiffre.

find . -regextype posix-extended -iregex './[0-9]{16,}.*.txt'

pour avoir aussi les fichiers des sous-dossiers :

find . -regextype posix-extended -iregex '.*/[0-9]{16,}.*.txt'

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#13 Le 27/11/2012, à 07:54

pingouinux

Re : [Résolu] Grep recherche chiffre.

Bonjour,
@M0ss :
Les commandes que je te donne en #7 cherchent les fichiers contenant au moins une ligne commençant par au moins 16 chiffres. Ai-je bien compris ce que tu veux ?

Dernière modification par pingouinux (Le 27/11/2012, à 08:12)

Hors ligne

#14 Le 27/11/2012, à 08:27

nesthib

Re : [Résolu] Grep recherche chiffre.

C'est aussi ce que j'avais compris.
edit : je viens de relire et pour le coup je ne sais plus s'il veut chercher le motif dans le contenu du fichier (solutions de pingouniux) ou dans son nom (#12)…

Dernière modification par nesthib (Le 27/11/2012, à 08:29)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#15 Le 27/11/2012, à 08:41

Watael

Re : [Résolu] Grep recherche chiffre.

M0ss a écrit :

faire une recherche de 16 chiffres minimum dans des fichiers .txt


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#16 Le 27/11/2012, à 08:50

pingouinux

Re : [Résolu] Grep recherche chiffre.

@Watael #15 :
Oui, tu as raison, mais la regexp du premier message de M0ss commençant par "^", je pensais que les chiffres devaient être en début de ligne. Attendons la réponse de l'intéressé.

Hors ligne

#17 Le 27/11/2012, à 13:36

M0ss

Re : [Résolu] Grep recherche chiffre.

Okay merci c'est de ma faute alors désolé.

Voila je cherche une suite de 16 chiffre au minimum mais ceux-ci ne commencent par forcément par des chiffres il peut y avoir d'autre caractère et ensuite 16 chiffres.

Hors ligne

#18 Le 27/11/2012, à 14:17

pingouinux

Re : [Résolu] Grep recherche chiffre.

Si c'est bien dans les fichiers que tu recherches ces chiffres, et pas dans le nom des fichiers, voici :

find -name "*.txt" -exec grep -l  '[0-9]\{16,\}' {} \;

Hors ligne

#19 Le 27/11/2012, à 14:25

FrancisFDZ

Re : [Résolu] Grep recherche chiffre.

pingouinux a écrit :

Si c'est bien dans les fichiers que tu recherches ces chiffres, et pas dans le nom des fichiers, voici :

find -name "*.txt" -exec grep -l  '[0-9]\{16,\}' {} \;

"find" est une commande de recherche très puissante, je confirme cette option.


-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne

#20 Le 27/11/2012, à 15:07

M0ss

Re : [Résolu] Grep recherche chiffre.

Merci sa fonctionne, c'est super puissant une fois que l'on sait s'en servir wink

Hors ligne

#21 Le 28/11/2012, à 09:13

FrancisFDZ

Re : [Résolu] Grep recherche chiffre.

Alors, résolu ?


-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne

#22 Le 28/11/2012, à 12:59

M0ss

Re : [Résolu] Grep recherche chiffre.

Oui c'est résolu merci

Hors ligne