Commande AWK - Recherche chaine fichier *.gz

Résolu
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -  
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
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 702 Date d'inscription   Statut Membre Dernière intervention   23
 
Merci a vous deux
0