Modifier le résultat affiché par une commande
Fermé
bloomingdals
-
10 juin 2013 à 10:44
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 - 11 juin 2013 à 11:46
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 - 11 juin 2013 à 11:46
A voir également:
- Modifier le résultat affiché par une commande
- Invite de commande - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Comment modifier un pdf - Guide
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
10 juin 2013 à 10:51
10 juin 2013 à 10:51
Salut,
$ echo "${A}" 2013-06-07 17:41:20.010 65070 -> 1300 0 391700 0 10 1769.978 1770 $ echo "${A}" | awk 'BEGIN{OFS=":"}{print $3,$5,$6,$7,$8,$9,$10,$11 }' 65070:1300:0:391700:0:10:1769.978:1770
Merci beaucoup, c'est ce qu'il me fallait.
Je voudrais juste savoir si awk est le bon choix pour un nombre de ligne retourné de l'ordre de 5000 lignes?
Je voudrais juste savoir si awk est le bon choix pour un nombre de ligne retourné de l'ordre de 5000 lignes?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
10 juin 2013 à 10:59
10 juin 2013 à 10:59
Normalement oui ;-)
bloomingdals
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
2
Modifié par bloomingdals le 11/06/2013 à 10:00
Modifié par bloomingdals le 11/06/2013 à 10:00
rebonjour,
La commande que tu m'a fourni a fonctionné parfaitement jusqu'à ce que la valeur de l'un des champs a été suffisament grandes pour qu'une unité de mesure apparaisse dans la ligne.
je m'explique, le champs $7 est le nombre d'octets reçu. Il est exprimé en bytes. Jusqu'ici pas de problèmes car tous les champs de ma ligne sont des réels.
Mais je me suis rendu compte que lorsque le nombre d'octets augmente, il s'exprime en Méa bytes au lieu de byte et la lettre M apparait.
Je voudrai modifier la commande de manière a concaténer les champs x et y si y est une lettre.
Comment je pourrais faire?
Merci
La commande que tu m'a fourni a fonctionné parfaitement jusqu'à ce que la valeur de l'un des champs a été suffisament grandes pour qu'une unité de mesure apparaisse dans la ligne.
je m'explique, le champs $7 est le nombre d'octets reçu. Il est exprimé en bytes. Jusqu'ici pas de problèmes car tous les champs de ma ligne sont des réels.
Mais je me suis rendu compte que lorsque le nombre d'octets augmente, il s'exprime en Méa bytes au lieu de byte et la lettre M apparait.
Je voudrai modifier la commande de manière a concaténer les champs x et y si y est une lettre.
Comment je pourrais faire?
Merci
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
11 juin 2013 à 11:42
11 juin 2013 à 11:42
Salut,
Il te faut rajouter un test à la commande.
Il te faut rajouter un test à la commande.
$ cat plop 2013-06-07 17:41:20.010 65070 -> 1300 0 391700 0 10 1769.978 1770 2013-06-07 17:41:20.010 65070 -> 1300 0 391700 M 0 10 1769.978 1770 2013-06-07 17:41:20.010 65070 -> 1300 0 391700 0 10 1769.978 1770 2013-06-07 17:41:20.010 65070 -> 1300 0 391700 M 0 10 1769.978 1770 $ cat script.awk BEGIN{ OFS=":" } { if($8 !~ /[[:digit:]]/){ print $3,$5,$6,$7$8,$9,$10,$11,$12 } else { print $3,$5,$6,$7,$8,$9,$10,$11 } } $ awk -f script.awk plop 65070:1300:0:391700:0:10:1769.978:1770 65070:1300:0:391700M:0:10:1769.978:1770 65070:1300:0:391700:0:10:1769.978:1770 65070:1300:0:391700M:0:10:1769.978:1770
bloomingdals
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
2
11 juin 2013 à 11:46
11 juin 2013 à 11:46
Merci beaucoup c'est ce que je cherchais.
Je suppose que la taille des données n'a aucune incidence sur la durée de traitement puisqu'on n'utilise pas le readline non?
Je suppose que la taille des données n'a aucune incidence sur la durée de traitement puisqu'on n'utilise pas le readline non?