Couper des champs particuliers du fichier texte

Couper des champs particuliers du fichier texte - Shell/Batch - Programmation

Marsh Posté le 10-04-2014 à 11:21:58    

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é:

Code :
  1. Mar:2:05:14:10:[****]:RRRRRRRRR:client=unknown[***.***.***.***]:sasl_method=LOGIN sasl_username=rita
  2. Mar:2:05:14:10:[****]:RRRRRRRRR:from=<rita@999>:size=11111nrcpt=1:(queue active)
  3. 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)


Reply

Marsh Posté le 10-04-2014 à 11:21:58   

Reply

Marsh Posté le 10-04-2014 à 12:09:35    

salut,
 
il va falloir utiliser awk, et un affichage conditionné par la présence (ou pas) de ":relay".

Reply

Marsh Posté le 10-04-2014 à 13:15:06    

j'ai essayé mais ça marche pas

Reply

Marsh Posté le 10-04-2014 à 13:35:55    

$ awk -F : '{$9 ~ /relay/? x=$9: x=""; print $1, $2, $3, $4, $5, $7, $8, x}'  fin>file

Reply

Marsh Posté le 10-04-2014 à 23:45:26    

qu'est-ce qui ne fonctionne pas ?
 
la ligne awk que tu montres marche très bien !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed