Un script avec awk

Bonjour,
j'ai un fichier MonFichier, il comporte un ensemble de messages délimités par deux codes ascii ^A au début du message et ^C à la fin de ce message. je vous fais remarquer aussi
qu'à la fin du message, il y'a le début du message suivant.

je veux extraire ces messages dans d'autres fichiers avec la commande awk et je n'arrive pas mon système est (AIX)

5 réponses

  1. un grand merci zipe31, tu te débrouilles très bien pour quelqu'un qui ne s'y connait pas sur AWK , j'aimerais bien connaitre ton domaine de prédilection (rires)
    0
    1. Contributeur
      Bon après moults essais sur une copie de ce que tu as donné, normalement cette syntaxe devrait faire l'affaire :

      awk 'BEGIN {RS="\003 \001"}{ for (i = 1;i < FNR;i++); NR==i; {print $0 > "fich"i".txt"} }'
      0
      1. voila un exemple de fichier, qui comporte un message et le début du deuxième message, à la fin du premier:
        {1:F21SOGEDZALAXXX3448424488}{4:{177:1005140900}{451:0}}{1:F01SOGEDZALAXXX3448424488}{2:O9502202100513SOGEFRPPDXXX64162187971005140800N}{3:{108:EEX14001538}}{4:
        :20:E32271/02-130510
        :25:001013227180
        :28C:00575/00002
        :60M:C100513EUR11785239,21
        :61:1005130513D7166,96S10300008TRF09077733//1327422
        1327422S103
        :61:1005130513D7166,96S10300008TRF09077734//1327351
        1327351S103
        :61:1005130513D2615,75S90000012CDI09018831//00012CDI09018831
        1333014S900
        :61:1005130513D1994,67S10300102TRF09077742//1335862
        1335862S103
        :61:1005130513D1994,67S10300102TRF09077743//1335874
        1335874S103
        :61:1005130513D1496,S10300102TRF09077740//1330876
        1330876S103
        :61:1005130513D1496,S10300102TRF09077741//1330826
        1330826S103
        :61:1005130513D870,7S10300202TRF09077766//1330209
        1330209S103
        :61:1005130513D658,83S10300202TRF09077764//1330215
        1330215S103
        :61:1005130513D535,6S10300010TRF09077753//1330461
        1330461S103
        :61:1005130513C50,S1030229013204190000//1321489
        1321489S103
        :61:1005130513C85,S1030081813200580000//1322154
        1322154S103
        :61:1005130513C100,S1030376613205020000//1324020
        1324020S103
        :61:1005130513C155,S1030125013213290000//1322116
        1322116S103
        :61:1005130513C165,S1030111013202250000//1322129
        1322129S103
        :61:1005130513C200,S1030424013212410000//1320733
        1320733S103
        :61:1005130513C205,S1030125013213300000//1322117
        1322117S103
        :61:1005130513C260,37S1033016876348//1335732
        1335732S103
        :61:1005130513C271,29S1030227013203340000//1321698
        1321698S103
        :61:1005130513C285,S1030227013203370000//1322124
        1322124S103
        :61:1005130513C300,S1030067013204130000//1324644
        1324644S103
        :61:1005130513C300,S202A05D10132L62542//A05D10132L62542C
        0350142S202
        :61:1005130513C305,S1030426013202730000//1322166
        1322166S103
        :61:1005130513C350,S1030227013203180000//1329617
        1329617S103
        :62M:C100513EUR11762274,73
        -}{5:{CHK:427351B7F3CE}{DLM:}}{S:{COP:P}} {1:F21SOGEDZALAXXX3448424489}{4:{177:1005140900}{451:0}}{1:F01SOGEDZALAXXX3448424489}{2:O9502202100513SOGEFRPPFXXX27264874571005140800N}{3:{108:EEX14001537}}{4:
        0
        1. Contributeur
          Bon "awk" n'étant pas ma tasse de thé, ça risque de me prendre un peu de temps pour trouver la bonne syntaxe ;-\

          En espérant que "dubcek" passe dans le coin, pour lui ça ne devrait être qu'une formalité ;-)
          0
      2. je veux extraire les messages à partir de monFichier et les mettre dans autant de fichiers que de messages extraits (exemple fichier1,... fichiern)
        0
        1. Contributeur
          Oui ça je l'ai bien compris ;-)

          Ce que je te demande c'est un exemple CONCRET de ton fichier de départ (avec les caractères non-imprimables visibles) afin que nous puissions adapter au mieux le code...

          Donc merci d'afficher ton fichier (ou un bout à défaut) ainsi qu'un exemple du résultat attendu (le contenu de fichier1 ou fichier2, etc.)
          0
      3. Contributeur
        Bonjour,

        Merci de poster un exemple concret (copier/coller* ou lien vers un fichier à récupérer) AVANT => APRÈS de ce que tu veux...

        * Pour le Copier/Coller prévoir un affichage prenant en compte les caractères non-imprimables du style "cat -A fichier" ou "sed -n l fichier"
        1