Un script avec awk

akarislove Messages postés 4 Statut Membre -  
akarislove Messages postés 4 Statut Membre -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  2. akarislove Messages postés 4 Statut Membre
     
    je veux extraire les messages à partir de monFichier et les mettre dans autant de fichiers que de messages extraits (exemple fichier1,... fichiern)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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. akarislove Messages postés 4 Statut Membre
     
    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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. akarislove Messages postés 4 Statut Membre
     
    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