Séparateur awk

Bonjour,
étant newbie sur Linux, j'ai un fichier formaté comme ci dessous

machine-r1;http :50000-51999
machine-r2;xwindow :6000-6005
machine-r3;jms :58000-58999

et je souhaite l'exploiter pour pour l'afficher sous cette forme sans les ";" et les ":", jusque là ça va j'arrive à m'en sortir en faisant un cat fic.txt |awk 'BEGIN { FS="[;:]" }{ print $1, $2}' mais je souhaite aussi sans les "-" mais uniquement pour la plage de ports et garder ces "-" pour les hostnames

de manière à avoir le résultat ci-dessous

machine-r1 http 50000 51999
machine-r2 xwindow 6000 6005
machine-r3 jms 58000 58999

Connaissez-vous donc un moyen de le faire avec awk de préférence?

Merci d'avance

2 réponses

  1. Contributeur
    Salut,

    awk 'BEGIN { FS="[;:]" } sub(/-/," ",$3) { print $1,$2,$3 }' fichier
    0
    1. C'est parfait merci pour ta réactivité.
      0