Commande AWK - Recherche chaine fichier *.gz

Résolu/Fermé
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - Modifié le 2 févr. 2022 à 12:02
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 21 févr. 2022 à 09:24
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 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
Modifié le 2 févr. 2022 à 11:56
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 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 751
Modifié le 2 févr. 2022 à 12:01
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 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
21 févr. 2022 à 09:24
Merci a vous deux
0