Commande AWK - Recherche chaine fichier *.gz

Résolu
pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -
Bonjour,

Je n'arrive pas à trouver comment chercher une chaîne de caractère dans des fichiers archivés. La commande ci-dessous fonctionne sur un seul fichier :
awk '/400/' file.txt 

... mais pas lorsque l'applique à des fichiers
*.gz
!
awk '/400/' *.gz


Merci pour votre aide.

Configuration: Linux


A voir également:

3 réponses

dubcek Messages postés 19021 Statut Contributeur 5 638
 
Hello,

C'est parce que les fichiers
.gz
sont du binaire. Pour utiliser
awk
, tu peux essayer :

gunzip -c *.gz | awk '/400/'
0
mamiemando Messages postés 34186 Statut Modérateur 7 889
 
Bonjour,

Pour compléter la réponse de dubcek, beaucoup de commandes prévues pour du texte (
cat
,
grep
, ...) sont adaptées pour des fichiers compressés
.gz
(
zcat
,
zgrep
, ...).

Ici, tu n'utilises
awk
que pour chercher un motif, donc
zgrep
est suffisant.

Exemple :

zgrep 400 *gz


Si tu veux vraiment utiliser
awk
à des fichiers
.gz
, tu peux faire soit comme dubcek le propose, soit lancer :

zcat *gz | awk '/400/'


Bonne chance
0
pcsystemd Messages postés 734 Statut Membre 23
 
Merci a vous deux
0