#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.
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
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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.
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,\}' {} \;
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#15 Le 27/11/2012, à 08:41
- Watael
Re : [Résolu] Grep recherche chiffre.
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.
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
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