A voir également:
- Modifier le résultat affiché par une commande
- Modifier dns - Guide
- Invite de commande - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Commande terminal mac - Guide
4 réponses
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?
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
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