Rechercher chaines dans un fichier txt
Résolu
Pedroo
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un petit souci pour mon script sh :
J'ai deux fichiers : Chaines_A_Chercher.txt (CAC.txt) et Fichier_A_Analyser.txt (FAA.txt)
Voici leurs formes :
CAC.txt :
FAA.txt : (il s'agit en fait d'un log de sortie)
Ce que je voudrai c'est que pour chaque ligne de FAA.txt, si le script trouve une ou plusieurs des chaines renseignées dans CAC.txt, alors il copie cette ligne depuis FAA.txt vers un autre fichier, appelons le Tri.txt et en indiquant si possible le numéro de ligne de FAA.txt.
Je nage ...
Merci pour votre aide ;)
j'ai un petit souci pour mon script sh :
J'ai deux fichiers : Chaines_A_Chercher.txt (CAC.txt) et Fichier_A_Analyser.txt (FAA.txt)
Voici leurs formes :
CAC.txt :
chaine1 chaine2 chaine3
FAA.txt : (il s'agit en fait d'un log de sortie)
Ligne1 Ligne2 Ligne3
Ce que je voudrai c'est que pour chaque ligne de FAA.txt, si le script trouve une ou plusieurs des chaines renseignées dans CAC.txt, alors il copie cette ligne depuis FAA.txt vers un autre fichier, appelons le Tri.txt et en indiquant si possible le numéro de ligne de FAA.txt.
Je nage ...
Merci pour votre aide ;)
A voir également:
- Rechercher chaines dans un fichier txt
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
4 réponses
Salut,
;-))
$ cat cac.txt chaine1 chaine2 chaine3 $ cat faa.txt Ligne1 Ligne2 chaine3 Ligne3 ligne4 chaine1 $ fgrep -f cac.txt -n faa.txt 2:Ligne2 chaine3 4:ligne4 chaine1 $
;-))
Ok j'ai peut être posté un peu vite. Ce bout de code fait l'affaire :
;)
while read ligne do set $(echo $ligne) word=$(eval echo $1) echo $word cat Fichier_A_Analyser | grep -i -n $word 2>&1 >> Tri.txt done < Chaines_A_Chercher.txt
;)
Peut être pouvez vous m'aider sur ce point :
Mon Fichier_A_Analyser a cette forme :
Je voudrai pouvoir extraire tout le paragraphe de 'Checking' jusqu'au '.' précédent un retour à la ligne et le prochain 'Checking' si ce paragraphe contient un ou plusieurs de mes mots clés. Dans l'exemple extraire les 4 premières lignes.
Merci.
Mon Fichier_A_Analyser a cette forme :
Checking .... ................... ......motclé... ................... Checking .... ................... ................... ................... Checking .... ................... ................... ................... etc
Je voudrai pouvoir extraire tout le paragraphe de 'Checking' jusqu'au '.' précédent un retour à la ligne et le prochain 'Checking' si ce paragraphe contient un ou plusieurs de mes mots clés. Dans l'exemple extraire les 4 premières lignes.
Merci.
$ cat plop Checking .... ................... ......motclé... ................... Checking .... ................... ................... ................... Checking .... ................... ................... ................... etc $ sed -n ':z;/^Checking/{h;n};H;n;/^Checking/!bz;x;/motclé/p;x;bz' plop Checking .... ................... ......motclé... ................... $
Essaye comme ça (une commande par ligne) :
Ou alors créés un fichier de script et appelles-le comme suit :
$ sed -n ' :z /^Checking/ { h n } H n /^Checking/ !b z x /motclé/ p x b z ' plop
Ou alors créés un fichier de script et appelles-le comme suit :
$ cat script.sed #n :z /^Checking/ { h n } H n /^Checking/ !b z x /motclé/ p x b z $ sed -f script.sed plop Checking .... ................... ......motclé... ................... $
Merci.