Retour Chariot avec Shell

Résolu
Bonjour, à tous

Je souhaite faire retour chariot sur plusieurs lignes.

j'ai le fichiers 1 ci-dessous


INTERROGATED STATIC ROUTES
GATEWAY ADDRESS ROUTE
UNIT ->DESTINATION TYPE NBR
---------------------- -------------------------------------------- ----- -----
ETMA-0 10.X.X.XX LOG 474
->20.XX.XX.XXX/32
ETMA-1 10.X.X.XX LOG 475
->20.XX.XX.XXX/32
ETMA-2 10.X.X.XX LOG 476
->20.XX.XX.XXX/32
ETMA-3 10.X.X.XX LOG 477
->20.XX.XX.XXX/32
ETMA-4 10.X.X.XX LOG 478
->20.XX.XX.XXX/32

COMMAND EXECUTED


je veux obtenir le format ci-desous

ETMA-0;10.X.X.XX;LOG;474;20.XX.XX.XXX/32
ETMA-1;10.X.X.XX;LOG;475;20.XX.XX.XXX/32
ETMA-2;10.X.X.XX;LOG;476;20.XX.XX.XXX/32
ETMA-3;10.X.X.XX;LOG;477;20.XX.XX.XXX/32
ETMA-4;10.X.X.XX;LOG;478;20.XX.XX.XXX/32


Merci d'avance.

'

5 réponses

  1. Contributeur
    Salut,

    $ cat fich
    INTERROGATED STATIC ROUTES
    GATEWAY ADDRESS ROUTE
    UNIT ->DESTINATION TYPE NBR
    ---------------------- -------------------------------------------- ----- -----
    ETMA-0 10.X.X.XX LOG 474
    ->20.XX.XX.XXX/32
    ETMA-1 10.X.X.XX LOG 475
    ->20.XX.XX.XXX/32
    ETMA-2 10.X.X.XX LOG 476
    ->20.XX.XX.XXX/32
    ETMA-3 10.X.X.XX LOG 477
    ->20.XX.XX.XXX/32
    ETMA-4 10.X.X.XX LOG 478
    ->20.XX.XX.XXX/32

    COMMAND EXECUTED


    $ sed -n '/[[:digit:]]/{N;s/ \+/;/g;s/\n;->/;/p}' fich
    ETMA-0;10.X.X.XX;LOG;474;20.XX.XX.XXX/32
    ETMA-1;10.X.X.XX;LOG;475;20.XX.XX.XXX/32
    ETMA-2;10.X.X.XX;LOG;476;20.XX.XX.XXX/32
    ETMA-3;10.X.X.XX;LOG;477;20.XX.XX.XXX/32
    ETMA-4;10.X.X.XX;LOG;478;20.XX.XX.XXX/32


    ;-)
    1. Slt UnGnU

      Merci pour ton retour

      j'ai exécuté ta ligne de commande mais je n'ai aucun résultat.

      [10/10/2017 16:32.09]  /drives/d/SCRIPT_SHELL/STATIC_ROUTE
      [Bangouame.SWEET-PC] ➤ sed -n '/[[:digit:]]/{N;s/ \+/;/g;s/\n;->/;/p}' TESST.txt
      ✔

      1. Contributeur
        Salut,

        Quel système ? Quelle version de sed ?
    2. Contributeur
      hello
      $ awk -F "[ \t>]+" '/^E/ {s=";"; p=$1 s $2 s $3 s $4 s; getline; print p $3}'fichier
      ETMA-0;10.X.X.XX;LOG;474;20.XX.XX.XXX/32
      ETMA-1;10.X.X.XX;LOG;475;20.XX.XX.XXX/32
      ETMA-2;10.X.X.XX;LOG;476;20.XX.XX.XXX/32
      ETMA-3;10.X.X.XX;LOG;477;20.XX.XX.XXX/32
      ETMA-4;10.X.X.XX;LOG;478;20.XX.XX.XXX/32
      1. Bonjour Dubcek

        ta commaande avec awk marche. Merci

        et merci aussi à UnGnU et Zipe31 .

        Cdlt.