Couper des champs particuliers du fichier texte
Résolu
rimrita
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
rimrita Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
rimrita Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour :hello: ,
Je veuv extraire les données suivantes de mon fichier date, client , from , to, relay
j'ai testé avec: cut -d: -f1,2,3,4,5,7,8 cleanlast>fin
mais le relay s'affiche pas et si j'ajoute cut -d: -f1,2,3,4,5,7,8,9 cleanlast>fin
les données de position 9 des autres ligne que je veux pas voir s'affiche aussi
voila comment mon fichier est structuré:
Je veuv extraire les données suivantes de mon fichier date, client , from , to, relay
j'ai testé avec: cut -d: -f1,2,3,4,5,7,8 cleanlast>fin
mais le relay s'affiche pas et si j'ajoute cut -d: -f1,2,3,4,5,7,8,9 cleanlast>fin
les données de position 9 des autres ligne que je veux pas voir s'affiche aussi
voila comment mon fichier est structuré:
Mar:2:05:14:10:[****]:RRRRRRRRR:client=unknown[***.***.***.***]:sasl_method=LOGIN sasl_username=rita
Mar:2:05:14:10:[****]:RRRRRRRRR:from=<rita@999>:size=11111nrcpt=1:(queue active)
Mar:2:05:14:11:[****]:RRRRRRRRRR:to=<000@rita>:relay=****.****.**.***[1***.***.**.***]:00:delay=0.00:delays=0.00/0.00/0.00/0.00:dsn=0.0.0:status=sent:(000:2.0.0:Ok queued as 00000000)
A voir également:
- Couper des champs particuliers du fichier texte
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
7 réponses
hello
awk permet des tests sur le contenu d'un champ
awk permet des tests sur le contenu d'un champ
$ awk -F : '{$9 ~ /relay/? x=$9: x=""; print $1, $2, $3, $4, $5, $7, $8, x}' fichier
essayer avec
awk 'BEGIN {FS=OFS=":"} {$9 ~/relay/? x=$9:x=""; print $1,$2,$3,$4,$5,$7,$8,x}' fichierou avec
awk 'BEGIN {FS=OFS=":"} {$9 ~/relay/? x=OFS $9:x=""; print $1,$2,$3,$4,$5,$7,$8 x}' fichierpas de : en fin de ligne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
explique !
il y a des champs vides?
il y a des champs vides?
$ awk 'BEGIN {FS=OFS=":"} {$9 ~/relay/? x=OFS $9:x=""; print $1,$2,$3,$4,$5,$7,$8 x}' fichier
Mar:2:05:14:10:RRRRRRRRR:client=unknown[***.***.***.***]
Mar:2:05:14:10:RRRRRRRRR:from=<rita@999>
Mar:2:05:14:11:RRRRRRRRRR:to=<000@rita>:relay=****.****.**.***[1***.***.**.***]
$
Non tous les champs sont attachés et séparés par ":"
Avec l'exemple donné dans ton 1er post, la commande de dubcek marche parfaitement, preuve s'il en est dans sa réponse #6. J'ai aussi fait le test chez moi et le résultat est le même.
Donc, c'est avec ton fichier original qu'il y a un problème. C'est un fichier de log issu de Windows ou de Linux ?
Donc, c'est avec ton fichier original qu'il y a un problème. C'est un fichier de log issu de Windows ou de Linux ?
je peut pas poster copier coller car c'est confidentiel , j'ai remplacer les valeurs par des "*" et des "0" j'ai respercter le nombre de caractéres alors pour fichier initial comme ça:
avec la commande
$ awk 'BEGIN {FS=OFS=":"} {$9 ~/relay/? x=OFS $9:x=""; print $1,$2,$3,$4,$5,$7,$8 x}' tmp
la resultat est:
Mar:2:08:27:34:client=unknown[***.***.***.***]:sasl_method=LOGIN
Mar:2:08:27:34: from=<rimrita@rimrita>:size=222222
Mar:2:08:27:35: to=<rita.rim@gmail.com>:relay=***.***.**.***[***.***.**.***]
::::::
Mar:2:08:27:34:client=unknown[***.***.***.***]:sasl_method=LOGIN
Mar:2:08:27:34: from=<rimrita@rimrita>:size=222222
Mar:2:08:27:35: to=<rita.rim@gmail.com>:relay=***.***.**.***[***.***.**.***]
::::::
avec la commande
$ awk 'BEGIN {FS=OFS=":"} {$9 ~/relay/? x=OFS $9:x=""; print $1,$2,$3,$4,$5,$7,$8 x}' tmp
la resultat est:
Mar:2:08:27:34:client=unknown[***.***.***.***]:sasl_method=LOGIN
Mar:2:08:27:34: from=<rimrita@rimrita>:size=222222
Mar:2:08:27:35: to=<rita.rim@gmail.com>:relay=***.***.**.***[***.***.**.***]
::::::
dsl mon fichier de départ est j'ai copier 2 fois le fichier resultat mon fichier de départ est donc:
Mar:2:08:27:34:*********:client=unknown[***.***.***.***]:sasl_method=LOGIN:sasl_username=rima
Mar:2:08:27:34:*********: from=<rimrita@rimrita>:size=222222:nrcpt=1 (queue active)
Mar:2:08:27:35:*********: to=<rita.rim@gmail.com>:relay=***.***.**.***[***.***.**.***]:25:delay=0.82: delays=0.00/0.00/0.00/0.00:dsn=2.0.0:status=sent (*** 2.0.0 Ok: queued as ***********)
Mar:2:08:27:34:*********:client=unknown[***.***.***.***]:sasl_method=LOGIN:sasl_username=rima
Mar:2:08:27:34:*********: from=<rimrita@rimrita>:size=222222:nrcpt=1 (queue active)
Mar:2:08:27:35:*********: to=<rita.rim@gmail.com>:relay=***.***.**.***[***.***.**.***]:25:delay=0.82: delays=0.00/0.00/0.00/0.00:dsn=2.0.0:status=sent (*** 2.0.0 Ok: queued as ***********)
ou est le problème ?
$ awk 'BEGIN {FS=OFS=":"} {$9 ~/relay/? x=OFS $9:x=""; print $1,$2,$3,$4,$5,$7,$8 x}' fichier2
Mar:2:08:27:34:client=unknown[***.***.***.***]:sasl_method=LOGIN
Mar:2:08:27:34: from=<rimrita@rimrita>:size=222222
Mar:2:08:27:35: to=<rita.rim@gmail.com>:relay=***.***.**.***[***.***.**.***]
$