SED ou awk ou nawk - Page 2

Précédent
  • 1
  • 2
  1. rahon93 Messages postés 67 Statut Membre 2
     
    La on voit pas la diff mais sur ma mire je le vois vraiment.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Oui j'ai vu ;-))

      Reste plus qu'à substituer les ";" par des tabulations et faire un retour à la ligne avant les "###", non ?
      0
  2. rahon93 Messages postés 67 Statut Membre 2
     
    Par contre que faisais la ligne que nous avons supprimé...
    0
  3. rahon93 Messages postés 67 Statut Membre 2
     
    TOUT AS FAIT GRAND CHEF !!!! :))
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Bon remets la ligne "s/\#\#*/\n&/g" mais doubles les protections :

      s/\\#\\#*/\n&/g
      0
  4. rahon93 Messages postés 67 Statut Membre 2
     
    OUAOUUUUUUUUUUUU

    sed -f new.sed ALL_COND_IN_OUT.lst
    --- P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 ;CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 ---;CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ;CONDITION OUT P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ;CONDITION OUT P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ;CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ---;CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ;CONDITION OUT P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 ;CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ---;CONDITION IN P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ;CONDITION OUT ########################################################################
    --- P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ---;CONDITION IN;CONDITION OUT P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ########################################################################

    Tu es trop fort :) :) :)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Reste plus qu'à changer le ";" par "\t" comme suit (là aussi si ça ne marche pas essaie en doublant la protection) :

      s/\n\n*\(CON\)/\t\1/g 
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rahon93 Messages postés 67 Statut Membre 2
     
    Voici ce que ca donne, j'ai toujours les tabulations

    sed -f new.sed ALL_COND_IN_OUT.lst
    --- P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 ;CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 ---;CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ;CONDITION OUT P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ;CONDITION OUT P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ;CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ---;CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ;CONDITION OUT P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ---;CONDITION IN P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 ;CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ---;CONDITION IN P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ;CONDITION OUT ########################################################################
    --- P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ---;CONDITION IN;CONDITION OUT P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ########################################################################
    $ cat new*
    #n
    :debut
    /^---/ {
    h
    :boucle
    n
    /^---/ !{
    H
    $ {
    b change
    }
    b boucle
    }
    :change
    x
    s/\n\n*\(CON\)/;\1/g
    s/\n\n*/ /g
    s/\\#\\#*/\n&/g
    s/\n\n*\(CON\)/\t\1/g
    p
    }
    x
    b debut
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Change cette partie :
      :change
      x
      s/\n\n*\(CON\)/;\1/g
      s/\n\n*/ /g
      s/\\#\\#*/\n&/g
      s/\n\n*\(CON\)/\t\1/g 

      Comme ça :

      :change
      x
      s/\n\n*\(CON\)/\t\1/g
      s/\n\n*/ /g
      s/\\#\\#*/\n&/g
      0
  7. rahon93 Messages postés 67 Statut Membre 2
     
    CA donne des t au lieu de tabulations

    sed -f new.new.sed ALL_COND_IN_OUT.lst
    --- P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ---tCONDITION IN P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 tCONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 ---tCONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 tCONDITION OUT P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 ---tCONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 tCONDITION OUT P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ---tCONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 tCONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ---tCONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 tCONDITION OUT P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ---tCONDITION IN P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 tCONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ---tCONDITION IN P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 tCONDITION OUT ########################################################################
    --- P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ---tCONDITION INtCONDITION OUT P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ########################################################################
    $ cat new.new.sed
    #n
    :debut
    /^---/ {
    h
    :boucle
    n
    /^---/ !{
    H
    $ {
    b change
    }
    b boucle
    }
    :change
    x
    s/\n\n*\(CON\)/\t\1/g
    s/\n\n*/ /g
    s/\\#\\#*/\n&/g
    p
    }
    x
    b debut
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Doubles les protections :

      s/\n\n*\(CON\)/\\t\1/g 
      0
  8. rahon93 Messages postés 67 Statut Membre 2
     
    sed -f new.new.sed ALL_COND_IN_OUT.lst
    --- P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ---\tCONDITION IN P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 \tCONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 ---\tCONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 \tCONDITION OUT P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 ---\tCONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 \tCONDITION OUT P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ---\tCONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 \tCONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ---\tCONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 \tCONDITION OUT P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ---\tCONDITION IN P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 \tCONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ---\tCONDITION IN P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 \tCONDITION OUT ########################################################################
    --- P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 ---\tCONDITION IN\tCONDITION OUT P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ########################################################################
    $ cat new.new.sed
    #n
    :debut
    /^---/ {
    h
    :boucle
    n
    /^---/ !{
    H
    $ {
    b change
    }
    b boucle
    }
    :change
    x
    s/\n\n*\(CON\)/\\t\1/g
    s/\n\n*/ /g
    s/\\#\\#*/\n&/g
    p
    }
    x
    b debut
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      ;-((

      Essaie de remplacer "\\t" par 5 espaces :

      s/\n\n*\(CON\)/     \1/g
      0
  9. rahon93 Messages postés 67 Statut Membre 2
     
    Déjà là je vais pouvoir faire de meilleurs choses avec le fichier :)

    cat new.new.sed
    #n
    :debut
    /^---/ {
    h
    :boucle
    n
    /^---/ !{
    H
    $ {
    b change
    }
    b boucle
    }
    :change
    x
    s/\n\n*\(CON\)/\ \1/g
    s/\n\n*/ /g
    s/\\#\\#*/\n&/g
    p
    }
    x
    b debut
    $ sed -f new.new.sed ALL_COND_IN_OUT.lst
    --- P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 --- CONDITION IN P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 --- CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 CONDITION OUT P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 --- CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 CONDITION OUT P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 --- CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 --- CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 CONDITION OUT P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 --- CONDITION IN P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 --- CONDITION IN P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 CONDITION OUT ########################################################################
    --- P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 --- CONDITION IN CONDITION OUT P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 ########################################################################

    =========

    Par contre peut-on afficher les COND IN OU OUT lorsqu'il y en a plusieurs au lieu de les avoir sur la même ligne mais plus tôt de les mettre à la ligne dans la même colonne.

    Je sais que j'abuse un peu de ton aide et géni mais si on arrive à faire ca alors là c'est le pied....
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Par contre peut-on afficher les COND IN OU OUT lorsqu'il y en a plusieurs au lieu de les avoir sur la même ligne mais plus tôt de les mettre à la ligne dans la même colonne.
      Euh... là c'est peut être un peu trop demandé à "sed" ;-(

      Juste un truc, il y a un anti-slash en trop dans ton code :

      s/\n\n*\(CON\)/\     \1/g 

      à transformer en :
      s/\n\n*\(CON\)/     \1/g 
      0
  10. rahon93 Messages postés 67 Statut Membre 2
     
    En tout cas, un grand merci à toi. Tu es très fort et m'impressionne.

    Suite à la modification demandée

    $ cat new.good.sed
    #n
    :debut
    /^---/ {
    h
    :boucle
    n
    /^---/ !{
    H
    $ {
    b change
    }
    b boucle
    }
    :change
    x
    s/\n\n*\(CON\)/ \1/g
    s/\n\n*/ /g
    s/\\#\\#*/\n&/g
    p
    }
    x
    b debut
    $ sed -f new.good.sed ALL_COND_IN_OUT.lst
    --- P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 --- CONDITION IN P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 --- CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 CONDITION OUT P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 --- CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 CONDITION OUT P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 --- CONDITION IN P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB2010 378 PBIFXXD010 --- CONDITION IN P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 CONDITION OUT P_BIL_CFF_FOREIGN FINB0201 379 PBIFXXD020 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 ########################################################################
    --- P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 --- CONDITION IN P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 CONDITION OUT P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 ########################################################################
    --- P_BIL_CFF_FOREIGN FIN CFF FOREIGN PBIFXXD0999 --- CONDITION IN P_BIL_CFF_FOREIGN FINS0202 427 PBIFXXD025 P_BIL_CFF_FOREIGN FINB0206 503 PBIFXXD026 P_BIL_CFF_FOREIGN FINB8010 890 PBIFXXD040 CONDITION OUT ########################################################################
    --- P_BIL_CFF_FOREIGN START CFF FOREIGN PBIFXXD000 --- CONDITION IN CONDITION OUT P_BIL_CFF_FOREIGN FINB8000 176 PBIFITD030 P_BIL_CFF_FOREIGN

    ET ENCORE UN GRAN GRAND MERCI...
    0
  11. rahon93 Messages postés 67 Statut Membre 2
     
    Et si j'integre le script sed à un programme awk tu penses que je pourrais obtenir le tout ds la même colonne ou alors est-ce peine perdue ?
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Peine perdue, non, mais ça risque d'être coton ;-(
      0
  12. rahon93 Messages postés 67 Statut Membre 2
     
    lol....En tout cas encore un grand merci à toi zipe31.

    A un de ces 4....:) :) :): )

    Amicalement, Rahon
    0
Précédent
  • 1
  • 2