Rechercher : dans
Par :

Recherche avancée avec find et grep

Dernière réponse le 19 jui 2007 à 18:57:00 nemo21, le 19 jui 2007 à 10:32:30 
 Signaler ce message aux modérateurs

Bonjour,

je voudrai effectuer sous unix une recherche dans toute une arborescence d'un type de fichiers '*.cbl'. Puis dans ces fichiers de données rechercher une chaine située entre la colonne 7 et la colonne 72.
Le but étant d'avoir à l'affichage les noms des fichiers et les lignes concernées.
J'ai fait différents essais en utilisant les commandes find et grep avec des pipes et des exec mais sans succès. Une idée serait de faire ça avec une expression régulière, mais je n'ai pas réussi à restreindre la recherche entre les colonnes 7 à 72 ....

Voilà, merci d'avance pour vos réponses ! :)

Configuration: Unix
HP-ux

Meilleures réponses pour « Recherche avancée avec find et grep » dans :
Retrouver la Recherche de Vista et créer un raccourci Voir Où est passée cette importante Fonction " Rechercher " dans Vista SP1 ? Sous Microsoft Windows Vista, la recherche avancée d'un fichier par son contenu est moins intuitive que sur Microsoft Windows XP, qui lui avait une entrée réservée. Première...
Recherche de fichiers avec Windows Vista VoirRecherche de fichiers avec Windows Vista L'outil de recherche de Windows Vista Rechercher dans le menu Démarrer Personnaliser la recherche dans le menu Démarrer Recherche depuis l'interface La recherche contextuelle Annuler un filtre de...
Rechercher des images de Noël : père Noël, traîneaux, sapin... VoirRechercher des images de Noël sur Internet Effectuer une recherche rapide d’images de Noël Effectuer une recherche avancée d’images de Noël Rechercher des images de Noël sur une banque d’images en ligne Rappel Rechercher des images de...

1

welby, le 19 jui 2007 à 11:23:54

Salut,
ALors comme ca te lancé la commande cache non parce que généralement quand j'utilise grep je galere avant d'avoir le bon reglage mais il faut que tu joue avec une commande de plus qui s'appelle cut elle te permet de faire des selections dans les colonnes.
VA voir ici c'est pas mal : http://www.ac-creteil.fr/reseaux/systemes/linux/shell-script­s/filtres.html

Répondre à welby

2

nemo21, le 19 jui 2007 à 14:00:52

Bonjour !

Merci pour ton lien, je l'ai visité, il est effectivement très intéressant, mais je n'ai pas réussi à trouver vraiment ce que je voulais.
Pour moi, la commande idéale serait quelque chose comme ça pour une recherche de la chaine toto par exemple :
find . -name '*.cbl' -exec cut -c7-72 {} \; | grep 'toto'

Je sais que ça ne marche pas, ne serait-ce que pour des raisons de syntaxe, mais ça illustre bien l'enchaînement logique auquel je voudrai arriver.

Répondre à nemo21

3

welby, le 19 jui 2007 à 15:29:12

Ouais c'est cela un truc dans le genre ou
find * -name *.cbl | grep toto |cut -c7-72 ....

Répondre à welby

4

poumiZ, le 19 jui 2007 à 16:31:38

Et ça ?

find . -name "*.cbl" | xargs cut -c7-72 | grep toto

Répondre à poumiZ

5

 nemo21, le 19 jui 2007 à 18:57:00

@welby : ça n'ira pas parce qu'il faut que je coupe les colonnes avant de faire le grep, sinon comme ces colonnes contiennent des données "parasites", je vais me retrouver avec des lignes en trop à la fin.

@poumiZ : ouais, c'est plus dans cet esprit-là : je suis plus devant la machine là donc je teste demain matin et je vous tiens au courant
Mais un des points critiques est de retrouver aussi en sortie le nom du fichier qui contient les données recherchées et en mettant le grep après le cut, je suis pas sûr qu'il le garde .... on verra ça demain, merci et bonne soirée !

Répondre à nemo21