Modifier les champs d'un fichier selon condition AWK/SED
bob737
Messages postés
144
Date d'inscription
Statut
Membre
Dernière intervention
-
bob737 Messages postés 144 Date d'inscription Statut Membre Dernière intervention -
bob737 Messages postés 144 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un fichier contenant ce type de ligne
TSMXP08;611;SLUDFRORAO61A_OLUO610A;DATE1;DATE2;VAL1;VAL2;VAL3
TSMXP08;334;SLUDFRORAXTVA_OLUXTVBA;DATE1;DATE2;VAL11;VAL12;VAL13
TSMXP08;286;VWUDFRSQLBPE00;DATE1;DATE2;VAL21;VAL22;VAL23
Je voudrais:
1) extraire les lignes dont le 3eme champ contient "_"
2) Remplacer ensuite "_" par ";"
3) print du champ 3;4;7
4) Et convertir et arrondir les valeurs du champ 7 aujourd'hui en octets vers des Mo ou Go
soit:
SLUDFRORAO61A;OLUO610A;VAL2
SLUDFRORAXTVA;OLUXTVBA;VAL12
J'ai fait quelque chose d'approximatif du genre:
cat FIC | grep "_O" | awk 'BEGIN {FS=OFS=";"} {sub("_", ";", $3); print $3,$7}'
mais ça ne fait pas la conversion octet vers Mo et ne fait pas l'arrondi.
Merci de votre aide.
j'ai un fichier contenant ce type de ligne
TSMXP08;611;SLUDFRORAO61A_OLUO610A;DATE1;DATE2;VAL1;VAL2;VAL3
TSMXP08;334;SLUDFRORAXTVA_OLUXTVBA;DATE1;DATE2;VAL11;VAL12;VAL13
TSMXP08;286;VWUDFRSQLBPE00;DATE1;DATE2;VAL21;VAL22;VAL23
Je voudrais:
1) extraire les lignes dont le 3eme champ contient "_"
2) Remplacer ensuite "_" par ";"
3) print du champ 3;4;7
4) Et convertir et arrondir les valeurs du champ 7 aujourd'hui en octets vers des Mo ou Go
soit:
SLUDFRORAO61A;OLUO610A;VAL2
SLUDFRORAXTVA;OLUXTVBA;VAL12
J'ai fait quelque chose d'approximatif du genre:
cat FIC | grep "_O" | awk 'BEGIN {FS=OFS=";"} {sub("_", ";", $3); print $3,$7}'
mais ça ne fait pas la conversion octet vers Mo et ne fait pas l'arrondi.
Merci de votre aide.
A voir également:
- Modifier les champs d'un fichier selon condition AWK/SED
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Modifier dns - Guide
- Comment ouvrir un fichier epub ? - Guide
- Modifier extension fichier - Guide
2 réponses
hello
peut-on voir le genre de valeur contenue dans le champ 7 ?
peut-on voir le genre de valeur contenue dans le champ 7 ?
$ awk 'BEGIN {FS=OFS=";"} $3 ~ /_/ {sub("_", ";", $3); print $3, $4, $7}' fichier
SLUDFRORAO61A;OLUO610A;DATE1;VAL2
SLUDFRORAXTVA;OLUXTVBA;DATE1;VAL12
Merci pour la réponse.
la résultat de ma commande ci-dessus. Le champ 7 est ici le champ3
EXA48;OLPCVSWB;50307543555112
EXA48;OLPDI4SB;8452364629442
EXA48;OLPEBOAB;6544871758233
EXA48;OLPEXA1A;14169704360837
EXA48;OLPEXA2A;31023928547737
EXA48;OLPEXA5A;121147189152972
EXA48;OLPEXA6A;8999248938926
EXA48;OLPEXA9A;260724532183
EXA48;OLPEXAGA;2667933880811
EXA48;OLPEXAHA;109218313011
EXA48;OLPEXAIA;3050554429276
EXA48;OLPEXAJA;164882462801
EXA48;OLPK99AB;6136092006809
EXA48;OLPM03AB;1965379981148
EXA48;OLPM04AB;717711464202
EXA48;OLPP32XB;8640470135603
EXA48;OLPQ34NB;1700056541429
Merci de votre aide.
la résultat de ma commande ci-dessus. Le champ 7 est ici le champ3
EXA48;OLPCVSWB;50307543555112
EXA48;OLPDI4SB;8452364629442
EXA48;OLPEBOAB;6544871758233
EXA48;OLPEXA1A;14169704360837
EXA48;OLPEXA2A;31023928547737
EXA48;OLPEXA5A;121147189152972
EXA48;OLPEXA6A;8999248938926
EXA48;OLPEXA9A;260724532183
EXA48;OLPEXAGA;2667933880811
EXA48;OLPEXAHA;109218313011
EXA48;OLPEXAIA;3050554429276
EXA48;OLPEXAJA;164882462801
EXA48;OLPK99AB;6136092006809
EXA48;OLPM03AB;1965379981148
EXA48;OLPM04AB;717711464202
EXA48;OLPP32XB;8640470135603
EXA48;OLPQ34NB;1700056541429
Merci de votre aide.