Aide sur un traitement fichier sur Aix
Fermé
leloup
-
18 nov. 2010 à 16:45
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 22 nov. 2010 à 09:39
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 22 nov. 2010 à 09:39
A voir également:
- Aide sur un traitement fichier sur Aix
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
19 réponses
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
Modifié par bob031 le 18/11/2010 à 20:07
Modifié par bob031 le 18/11/2010 à 20:07
Bonjour,
Mais oui c'est possible !
Sous Unix, tout est possible .... ou presque ^^
la commande diff devrait peut-être t'aider.
pour plus de précisions :
un penguin sur la banquise !
Mais oui c'est possible !
Sous Unix, tout est possible .... ou presque ^^
la commande diff devrait peut-être t'aider.
pour plus de précisions :
man diff
un penguin sur la banquise !
Bonjour et merci de ton intérêt,
Je sais bien que sous unix/linux tout est possible ou presque d'ou notre choix lol
Par contre, diff permet de comparer 2 fichiers mais non un seul fichier me semble t'il.
Merci encore pour votre aide.
Cordialement à tous
Leloup
Je sais bien que sous unix/linux tout est possible ou presque d'ou notre choix lol
Par contre, diff permet de comparer 2 fichiers mais non un seul fichier me semble t'il.
Merci encore pour votre aide.
Cordialement à tous
Leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
19 nov. 2010 à 07:53
19 nov. 2010 à 07:53
Salut,
Il nous faudrait davantage d'explications...
Si j'ai bien compris tu veux comparer chaque bloc commençant par "MAGASIN :xxx" (et se finissant par une ligne vide comme séparateur de bloc ?) au 1er bloc et envoyer le bloc dans un fichier si les champs ne concordent pas ?
Un exemple plus concret serait de mise afin de lever toute ambiguïté ;-\
Il nous faudrait davantage d'explications...
Si j'ai bien compris tu veux comparer chaque bloc commençant par "MAGASIN :xxx" (et se finissant par une ligne vide comme séparateur de bloc ?) au 1er bloc et envoyer le bloc dans un fichier si les champs ne concordent pas ?
Un exemple plus concret serait de mise afin de lever toute ambiguïté ;-\
C'est tout à fait cela.
Ben l'exemple est dans mon premier message.
J'ai effectivement plusieurs bloc commencant par magXXX et se terminant par une ligne vide.
A l'interieur du bloc, j'ai plusieurs champs (par deux) et si ils ne concordent pas, je souhaiterais que le boc soit redirigé vers un autre fichier.
Le fichier serait donc comme cela :
Et je voudrais récuperer :
Merci pour votre aide
Cordialement
Leloup
Ben l'exemple est dans mon premier message.
J'ai effectivement plusieurs bloc commencant par magXXX et se terminant par une ligne vide.
A l'interieur du bloc, j'ai plusieurs champs (par deux) et si ils ne concordent pas, je souhaiterais que le boc soit redirigé vers un autre fichier.
Le fichier serait donc comme cela :
MAGASIN :101 R'ception des Op'rations au bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 0 0 0 0 0 0 Compteur 1 0 0 0 0 0 0 Compteur 2 0 0 0 0 0 0 Encaissement 0 0 Decaissement 0 0 MAGASIN :102 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 0 0 1 1 0 0 Compteur 1 0 0 420902 420902 0 0 Compteur 2 0 0 7 7 0 0 Encaissement 0 0 Decaissement 0 0 MAGASIN :103 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 531 531 89 89 0 0 Compteur 1 836.54 836.5 6902898 6302262 0 0 Compteur 2 2134992 2134992 1583.97 1520.17 0 0 Encaissement 2038.43 2038.43 Decaissement 2038.43 2038.43 MAGASIN :104 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 10 10 145 145 0 0 Compteur 1 294 294 9248565 9248565 0 0 Compteur 2 9047 9047 1727.74 1727.74 0 0 Encaissement 0 0 Decaissement 0 0 MAGASIN :239 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 250 250 23 23 0 0 Compteur 1 168.06 168.04 3663671 3363292 0 0 Compteur 2 3688580 3688580 393.32 373.24 0 0 Encaissement 1234.7 1234.7 Decaissement 1234.7 1234.7
Et je voudrais récuperer :
MAGASIN :103 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 531 531 89 89 0 0 Compteur 1 836.54 836.5 6902898 6302262 0 0 Compteur 2 2134992 2134992 1583.97 1520.17 0 0 Encaissement 2038.43 2038.43 Decaissement 2038.43 2038.43 MAGASIN :239 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 250 250 23 23 0 0 Compteur 1 168.06 168.04 3663671 3363292 0 0 Compteur 2 3688580 3688580 393.32 373.24 0 0 Encaissement 1234.7 1234.7 Decaissement 1234.7 1234.7
Merci pour votre aide
Cordialement
Leloup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
19 nov. 2010 à 16:19
19 nov. 2010 à 16:19
$ cat fich MAGASIN :101 R'ception des Op'rations au bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 0 0 0 0 0 0 Compteur 1 0 0 0 0 0 0 Compteur 2 0 0 0 0 0 0 Encaissement 0 0 Decaissement 0 0 MAGASIN :102 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 0 0 1 1 0 0 Compteur 1 0 0 420902 420902 0 0 Compteur 2 0 0 7 7 0 0 Encaissement 0 0 Decaissement 0 0 MAGASIN :103 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 531 531 89 89 0 0 Compteur 1 836.54 836.5 6902898 6302262 0 0 Compteur 2 2134992 2134992 1583.97 1520.17 0 0 Encaissement 2038.43 2038.43 Decaissement 2038.43 2038.43 MAGASIN :104 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 10 10 145 145 0 0 Compteur 1 294 294 9248565 9248565 0 0 Compteur 2 9047 9047 1727.74 1727.74 0 0 Encaissement 0 0 Decaissement 0 0 MAGASIN :239 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 250 250 23 23 0 0 Compteur 1 168.06 168.04 3663671 3363292 0 0 Compteur 2 3688580 3688580 393.32 373.24 0 0 Encaissement 1234.7 1234.7 Decaissement 1234.7 1234.7 $ awk 'BEGIN { RS="\n\n+"; FS="\n" }{ split($5,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }' fich MAGASIN :103 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 531 531 89 89 0 0 Compteur 1 836.54 836.5 6902898 6302262 0 0 Compteur 2 2134992 2134992 1583.97 1520.17 0 0 Encaissement 2038.43 2038.43 Decaissement 2038.43 2038.43 MAGASIN :239 R'ception des Op'rations au 171110 bobon. Truc Heures Emis Recus Emis Recus Emis Recus Enregistrements 250 250 23 23 0 0 Compteur 1 168.06 168.04 3663671 3363292 0 0 Compteur 2 3688580 3688580 393.32 373.24 0 0 Encaissement 1234.7 1234.7 Decaissement 1234.7 1234.7 $
;-))
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
Modifié par Char Snipeur le 19/11/2010 à 16:30
Modifié par Char Snipeur le 19/11/2010 à 16:30
doublon : https://forums.commentcamarche.net/forum/affich-19883896-traitement-fichier-sous-ksh#p19887045 (à sa décharge, le problème tiens autant de la programmation que de Unix, la preuve réponse dans les deux)
awk, je l'oublie toujours celle là.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
awk, je l'oublie toujours celle là.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
19 nov. 2010 à 16:58
19 nov. 2010 à 16:58
A part que pour "grep" il avait déjà eu une réponse, et que les doublons ne sont pas tolérés principalement pour ne pas s'égarer et ne pas répéter 50 fois la même chose ;-((
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
19 nov. 2010 à 19:50
19 nov. 2010 à 19:50
Ouais ! Bon, ça va ! Je pensais qu'il s'agissait de 2 fichiers différents !
Par contre, diff permet de comparer 2 fichiers mais non un seul fichier me semble t'il.
exact !
^^
Par contre, diff permet de comparer 2 fichiers mais non un seul fichier me semble t'il.
exact !
^^
Merci encore à tous pour votre aide.
Désolé mais la commande
ne me renvoi rien.
Cordialement
Leloup
Désolé mais la commande
awk 'BEGIN { RS="\n\n+"; FS="\n" }{ split($5,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }' fich
ne me renvoi rien.
Cordialement
Leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
19 nov. 2010 à 23:18
19 nov. 2010 à 23:18
Change les "\n" par des "\r" ;-\
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
19 nov. 2010 à 23:35
19 nov. 2010 à 23:35
En fait modifie comme suit :
awk 'BEGIN { RS="\r\n\r\n+"; FS="\r\n" }{ split($5,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }'
Bonjour,
Désolé, mais
Merci encore pour vos efforts et votre aide
Cordialement
Leloup
Désolé, mais
awk 'BEGIN { RS="\r\n\r\n+"; FS="\r\n" }{ split($5,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }' fichne me renvoie rien non plus.
Merci encore pour vos efforts et votre aide
Cordialement
Leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 09:07
20 nov. 2010 à 09:07
Même topo que la dernière fois alors, merci de mettre le fichier sur "Cijoint" ;-\
Merci Zipe31,
Le lien est : http://www.cijoint.fr/cjlink.php?file=cj201011/cijoANWETP.txt
Cordialement
Leloup
Le lien est : http://www.cijoint.fr/cjlink.php?file=cj201011/cijoANWETP.txt
Cordialement
Leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 10:50
20 nov. 2010 à 10:50
Ben chez moi ça marche sans problème ;-\
C'est les bons ?
Essayes avec "gawk" ou "nawk" ;-\
$ grep -o -c 'MAGASIN' cijoANWETP.txt 75 $ awk 'BEGIN { RS="\r\n\r\n+"; FS="\r\n" }{ split($5,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }' cijoANWETP.txt | grep -o -c 'MAGASIN' 44 $ awk 'BEGIN { RS="\r\n\r\n+"; FS="\r\n" }{ split($5,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }' cijoANWETP.txt | egrep -o 'MAGASIN :[^ ]*' MAGASIN :102 MAGASIN :104 MAGASIN :108 MAGASIN :109 MAGASIN :110 MAGASIN :111 MAGASIN :113 MAGASIN :114 MAGASIN :115 MAGASIN :117 MAGASIN :121 MAGASIN :124 MAGASIN :129 MAGASIN :132 MAGASIN :133 MAGASIN :134 MAGASIN :137 MAGASIN :138 MAGASIN :140 MAGASIN :144 MAGASIN :145 MAGASIN :149 MAGASIN :150 MAGASIN :151 MAGASIN :152 MAGASIN :159 MAGASIN :167 MAGASIN :169 MAGASIN :173 MAGASIN :179 MAGASIN :184 MAGASIN :197 MAGASIN :239 MAGASIN :261 MAGASIN :275 MAGASIN :336 MAGASIN :4GA MAGASIN :4GD MAGASIN :4GH MAGASIN :4GI MAGASIN :4GK MAGASIN :4GM MAGASIN :4GN MAGASIN :4GS
C'est les bons ?
Essayes avec "gawk" ou "nawk" ;-\
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 11:05
20 nov. 2010 à 11:05
Oups avec les nouvelles données, le champ à récupérer a changé ($6 et non plus $5) ;-((
;-))
awk 'BEGIN { RS="\r\n\r\n+"; FS="\r\n" }{ split($6,tb," "); if(tb[5] != tb[6]) {printf $0"\n\n"} }' cijoANWETP.txt MAGASIN :239 R?ception des Op?rations au 171110 Appro. Cereales Heures Emis Recus Emis Recus Emis Recus Enregistrements 250 250 23 23 0 0 Compteur 1 168.06 168.04 3663671 3363292 0 0 Compteur 2 3688580 3688580 393.32 373.24 0 0 Encaissement 1234.7 1234.7 Decaissement 1234.7 1234.7 MAGASIN :275 R?ception des Op?rations au 171110 Appro. Cereales Heures Emis Recus Emis Recus Emis Recus Enregistrements 531 531 89 89 0 0 Compteur 1 836.54 836.5 6902898 6302262 0 0 Compteur 2 2134992 2134992 1583.97 1520.17 0 0 Encaissement 2038.43 2038.43 Decaissement 2038.43 2038.43
;-))
Désolé,
la commande fonctionne a merveille sous linux, mais s'entête à ne rien renvoyé sous mon aix.
Je suis perdu
Cordialement
Leloup
la commande fonctionne a merveille sous linux, mais s'entête à ne rien renvoyé sous mon aix.
Je suis perdu
Cordialement
Leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 11:46
20 nov. 2010 à 11:46
T'as essayé avec gawk ou nawk ?
Non, ils ne sont pas installé sur mon Aix
Amicalement
leloup
Amicalement
leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 13:02
20 nov. 2010 à 13:02
Ben là je ne peux plus rien pour toi ;-((
C'est un fichier créé sous AIX ou importé d'un système Windows ?
As-tu essayé de convertir le fichier au format Unix (dos2unix ou avec "sed") ?
C'est un fichier créé sous AIX ou importé d'un système Windows ?
As-tu essayé de convertir le fichier au format Unix (dos2unix ou avec "sed") ?
C'est bien un fichier créé sous aix.
Ce n'est a rien y comprendre
Amicalement
leloup
Ce n'est a rien y comprendre
Amicalement
leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 13:22
20 nov. 2010 à 13:22
Que renvoie la commande :
file fichier
Ca renvoi :
Amicalement
leloup
data or international language text
Amicalement
leloup
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 17:38
20 nov. 2010 à 17:38
C'est pas très causant les système AIX ;-((
Et la conversion de fichiers t'as essayé ou pas ?
Et la conversion de fichiers t'as essayé ou pas ?
Non car Dos2unix n'est pas installé sous l'aix
C'est quand meme incroyable que ca fonctionne a merveille sous linux et que ca ne renvoi strictement rien sous aix.
Amicalement
leloup
C'est quand meme incroyable que ca fonctionne a merveille sous linux et que ca ne renvoi strictement rien sous aix.
Amicalement
leloup
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
20 nov. 2010 à 18:23
20 nov. 2010 à 18:23
Bonjour,
J'essaierai de voir au boulot sur une AIX pourquoi cela ne le fait pas !
J'essaierai de voir au boulot sur une AIX pourquoi cela ne le fait pas !
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 18:33
20 nov. 2010 à 18:33
Non car Dos2unix n'est pas installé sous l'aix
Et en convertissant avec "sed" (Conversion retours chariots DOS (CRLF) / UNIX (LF)) ?
Et en convertissant avec "sed" (Conversion retours chariots DOS (CRLF) / UNIX (LF)) ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
20 nov. 2010 à 18:35
20 nov. 2010 à 18:35
Salut Bobby ;-))
J'essaierai de voir au boulot sur une AIX pourquoi cela ne le fait pas !
<ModeJokeON>
On parle pas de bagnole conG, hein conG ? ;-DDD
<ModeJokeOFF>
J'essaierai de voir au boulot sur une AIX pourquoi cela ne le fait pas !
<ModeJokeON>
On parle pas de bagnole conG, hein conG ? ;-DDD
<ModeJokeOFF>
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
473
20 nov. 2010 à 18:40
20 nov. 2010 à 18:40
ModeJokeON>
On parle pas de bagnole conG, hein conG ?
pourtant je bosse dans un grand garage très réputé conG .... ^^
<ModeJokeOFF>
On parle pas de bagnole conG, hein conG ?
pourtant je bosse dans un grand garage très réputé conG .... ^^
<ModeJokeOFF>
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 nov. 2010 à 08:20
22 nov. 2010 à 08:20
Il est pénible ce système AIX, pourtant il est récent.
Comme c'est un système assez peu répendu, difficile de trouver quelqu'un qui a le même et peu tester.
Si awk ne fonctionne pas, il reste comme je te le disais l'utilisation des commandes "grep cut tail head wc".
Ou alors, tu récupères un awk Linux que tu compiles toi même (à nommé GNUawk pour ne pas confondre).
Comme c'est un système assez peu répendu, difficile de trouver quelqu'un qui a le même et peu tester.
Si awk ne fonctionne pas, il reste comme je te le disais l'utilisation des commandes "grep cut tail head wc".
Ou alors, tu récupères un awk Linux que tu compiles toi même (à nommé GNUawk pour ne pas confondre).
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
22 nov. 2010 à 09:06
22 nov. 2010 à 09:06
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
22 nov. 2010 à 09:39
22 nov. 2010 à 09:39
perl...
Bon, voilà, je ne suis pas un expert en perl, donc il faut surement débuguer pas mal, mais je pense que ça peut être une bonne base.
open(fic,"<fichier"); while( defined ($lect=<fic>) ) { push @tot,"$lect\n"; } close fic; @blocks=split /MAGASIN/,$tot; for ($n=0;$n<$#blocks;$n++) { @lignes=split /\n/,blocks[$n]: for ($m=2;$m<8;$m++) #commence à 2 pour sauter premières lignes { @champs=split / +/,lignes[$m]; if(champs[1] != champs[2] || champs[3] != champs[4]){/* fonction écrivant tout le bloc*/; last;} } }
Bon, voilà, je ne suis pas un expert en perl, donc il faut surement débuguer pas mal, mais je pense que ça peut être une bonne base.