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


L'accès au savoir est la première liberté que chaque homme devrait avoir.

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Hello,

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

    gunzip -c *.gz | awk '/400/'
    0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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
  3. pcsystemd Messages postés 734 Statut Membre 23
     
    Merci a vous deux
    0