Shell et commande awk
Fermé
bob
-
Modifié par bob le 13/11/2011 à 18:27
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 14 nov. 2011 à 23:09
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 14 nov. 2011 à 23:09
A voir également:
- Shell et commande awk
- Invite de commande - Guide
- Commande terminal mac - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Commande dism - Guide
- Diskpart commande - Guide
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
13 nov. 2011 à 18:31
13 nov. 2011 à 18:31
Salut,
;-))
awk '/[[:digit:]]/ { print }' fichier ou grep '[[:digit:]]' fichier ou encore sed -n '/[[:digit:]]/p' fichier
;-))
merci de m'avoir répondu,
cependant, ce n'est pas tout à fait ça, je met ici un extrait du fichier :
awk '$2 ~ /voir/ && $1!=1 || length($0)< 7 && length($0)>=2 { print $1 }' fichier.txt
en principe la commande ci dessus devrait marcher mais ça ne fonctionne pas dès que j'ai une ligne comme celle là :
car la valeur que je cherche n'existe tout simplement pas, ce que j'essaye de faire c'est de récupérer chaque ligne se trouvant en dessous des lignes puissance, si la valeur n'existe pas alors je mettrais une valeur par défaut.
je sais pas si je suis assez clair lol
cependant, ce n'est pas tout à fait ça, je met ici un extrait du fichier :
185 08/11/N1011 22:49 BRUMAK, dasihaul puissance : 176 RICOU PASTISSAD 452 voir 186 08/11/N1011 22:48 KLOOP, dasihaul puissance : 74 RICOU PASTISSAD 502 voir 187 08/11/N1011 22:48 ANGELSPEED, dasihaul puissance : 60 RICOU PASTISSAD 558 1 voir
awk '$2 ~ /voir/ && $1!=1 || length($0)< 7 && length($0)>=2 { print $1 }' fichier.txt
en principe la commande ci dessus devrait marcher mais ça ne fonctionne pas dès que j'ai une ligne comme celle là :
183 08/11/N1011 22:54 FABULOUS33, dasihaul
puissance : 6 HYPERION
1 voir
car la valeur que je cherche n'existe tout simplement pas, ce que j'essaye de faire c'est de récupérer chaque ligne se trouvant en dessous des lignes puissance, si la valeur n'existe pas alors je mettrais une valeur par défaut.
je sais pas si je suis assez clair lol
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
13 nov. 2011 à 22:24
13 nov. 2011 à 22:24
Les associations sont ambiguës.
Moi, je comprend ça comme ça :
Tu cherches les lignes dont la deuxième colonne vaut "voir" ET dont la première colonne est différente de 1
OU
les lignes comprises entre 2 ET 7 caractères.
Si les conditions sont remplies tu veux afficher la première colonne.
Donc normale que si la première colonne vaut 1 ça ne s'affiche pas.
Moi, je comprend ça comme ça :
Tu cherches les lignes dont la deuxième colonne vaut "voir" ET dont la première colonne est différente de 1
OU
les lignes comprises entre 2 ET 7 caractères.
Si les conditions sont remplies tu veux afficher la première colonne.
Donc normale que si la première colonne vaut 1 ça ne s'affiche pas.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 nov. 2011 à 16:08
14 nov. 2011 à 16:08
Ben même topo pour moi, je pige que dalle ;-((
Merci d'afficher un exemple concret de ton fichier d'entrée et le résultat souhaité.
Merci d'afficher un exemple concret de ton fichier d'entrée et le résultat souhaité.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 nov. 2011 à 19:10
14 nov. 2011 à 19:10
Avec "sed" :
$ cat plop 185 08/11/N1011 22:49 BRUMAK, dasihaul puissance : 176 RICOU PASTISSAD 452 voir 186 08/11/N1011 22:48 KLOOP, dasihaul puissance : 74 RICOU PASTISSAD 502 voir 187 08/11/N1011 22:48 ANGELSPEED, dasihaul puissance : 60 RICOU PASTISSAD 558 1 voir $ sed -n '/puissance/{n;p}' plop 452 voir 502 voir 558 $