Recherche avancée avec find et grep

nemo21 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
nemo21 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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 ! :)
A voir également:

5 réponses

welby Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   6
 
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-scripts/filtres.html
0
nemo21 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
welby Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   6
 
Ouais c'est cela un truc dans le genre ou
find * -name *.cbl | grep toto |cut -c7-72 ....
0
poumiZ Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   10
 
et ça ?
find . -name "*.cbl" | xargs cut -c7-72 | grep toto
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nemo21 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
@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 !
0