A voir également:
- Sed supprimer retour chariot
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Fichier impossible à supprimer - Guide
- Supprimer compte instagram - Guide
14 réponses
Salut,
perl -pi.orig -e 's/\r//' ton_fichier
Merci mais encore une fois cela ne change rien ma chaine de caractères se décomposent.
Peut être qu'une simple instruction n'est suffisante et qu'il faut que je fasse un script en KSH afin de recréer mes lignes une à une.
J'ai quelques idées mais encore une fois mon manque de connaissances me bloque, connaissez vous un bon support afin que je trouve les instructions de base?
Peut être qu'une simple instruction n'est suffisante et qu'il faut que je fasse un script en KSH afin de recréer mes lignes une à une.
J'ai quelques idées mais encore une fois mon manque de connaissances me bloque, connaissez vous un bon support afin que je trouve les instructions de base?
Salut,
En fait on aura besoin d'un p'tit bout de ton fichier pour pouvoir tester.
Et mets le fichier.test sur cjoint.com
En fait on aura besoin d'un p'tit bout de ton fichier pour pouvoir tester.
head -10000 ton_fichier > fichier.test
Et mets le fichier.test sur cjoint.com
Sinon il y a aussi "dos2unix" qui te fait ça tout seul...
Les données étant confidentielles je ne peux pas vous donner le fichier même une partie.
Mais je peux vous en créer un fictif pour tester le problème et vous le mettre à dispo demain. Cela peut venir d'un autre caractère selon vous ?
Je vais re-tester dos2unix mais il me semble que cela ne marche pas non plus.
Merci pour votre aide.
Mais je peux vous en créer un fictif pour tester le problème et vous le mettre à dispo demain. Cela peut venir d'un autre caractère selon vous ?
Je vais re-tester dos2unix mais il me semble que cela ne marche pas non plus.
Merci pour votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Mais je peux vous en créer un fictif pour tester le problème et vous le mettre à dispo demain.
Ok, ça sera parfait ;-)
Mais je peux vous en créer un fictif pour tester le problème et vous le mettre à dispo demain.
Ok, ça sera parfait ;-)
Salut,
Le lien pour tester mon fichier, il est fictif mais reproduit mon pb.
https://www.cjoint.com/?lzj00AHhsv
Merci
Le lien pour tester mon fichier, il est fictif mais reproduit mon pb.
https://www.cjoint.com/?lzj00AHhsv
Merci
Re,
Tape cette commande et affiche le résultat
Tape cette commande et affiche le résultat
perl -ne 's/(.)/ord($1)/egs;print "$_\n"' fichier.fictifMerci.
Euh... ca me donne ca...
"67111100101326711110910911711010132826782658432583253504950493495148465250545210
48495356534955575148485050509485150535656515156559828569327165826932453278698573767689327632698669818569324053504193452321129710511410111532971173210911110511011532115111110116321001051151121111101059810810111510
679710810598114101321081111101031171011171143258324852484948484912410
826782658432583278698610
671111001013267111109109117110101328267826584325832535051525634949544653495310
"
"67111100101326711110910911711010132826782658432583253504950493495148465250545210
48495356534955575148485050509485150535656515156559828569327165826932453278698573767689327632698669818569324053504193452321129710511410111532971173210911110511011532115111110116321001051151121111101059810810111510
679710810598114101321081111101031171011171143258324852484948484912410
826782658432583278698610
671111001013267111109109117110101328267826584325832535051525634949544653495310
"
Ton exemple ne m'aide pas puisque je ne sais pas quelles lignes tu m'affiche.
Tape et mets sur cjoint.com le résultat (le fichier fictif.txt)
Le but de ma commande c'est de depister les caractès ASCII que je dois supprimer.
Tape et mets sur cjoint.com le résultat (le fichier fictif.txt)
perl -ne 's/(.)/ord($1)/egs;print "$_\n"' fichier.fictif > fictif.txt
Le but de ma commande c'est de depister les caractès ASCII que je dois supprimer.
Re-
Tu peux essayer ça s'il te plait et me dire si ça le fait ?
Tu peux essayer ça s'il te plait et me dire si ça le fait ?
sed ':z;N;/^M$/!bz;s/\x0A/ /g' ton_fichier;-)
Quelle version de sed ? Quel système ?
Essaye comme ça alors :
Essaye comme ça alors :
sed ' :z N /^M/ !b z s/\x0A/ /g ' ton_fichier
Salut,
Ok, j'ai compris pourquoi
On remarque que entre les lignes qui se finissent avec CarriageReturn (^M) il y a des lignes qui se finissent avec \n.
En supprimant seulement ^M toutes les lignes restent inchangées.
A savoir qu'entre deux ^M il y a une seule ligne (les cellules y compris celles avec CarriageReturn Les sauts de lignes proviennent des "ALT+Entrée" fait dans des cellules excel. ).
Donc on doit d'abord supprimer (ou le remplacer avec un espace) le \n entre deux ^M et ensuite supprimer le ^M
Un exemple (les 20 premiers lignes)
A faire sur ton fichier (le fichier original aura l'extension .orig)
Ok, j'ai compris pourquoi
lami20j@debian:~/trash$ cat -t exemple_fichier.txt | head -10 IDENT^IAdresse du client^IConstruction de ligne^IAff_total^M 000001^ILISTE ROUGE^I"3 paire(s) disponible(s) Calibre longueur : 0400385| RCRAT : ABB Code Commune RCRAT : 80001"^I7.275^M 000002^ILISTE ROUGE^I"3 paire(s) disponible(s) Calibre longueur : 0400400| RCRAT : ABB Code Commune RCRAT : 80001"^I7.5^M 000003^ILISTE ROUGE^I"3 paire(s) disponible(s) lami20j@debian:~/trash$
On remarque que entre les lignes qui se finissent avec CarriageReturn (^M) il y a des lignes qui se finissent avec \n.
En supprimant seulement ^M toutes les lignes restent inchangées.
A savoir qu'entre deux ^M il y a une seule ligne (les cellules y compris celles avec CarriageReturn Les sauts de lignes proviennent des "ALT+Entrée" fait dans des cellules excel. ).
Donc on doit d'abord supprimer (ou le remplacer avec un espace) le \n entre deux ^M et ensuite supprimer le ^M
Un exemple (les 20 premiers lignes)
lami20j@debian:~/trash$ perl -ne '!/\r/?s/\n//:s/\r//;print' exemple_fichier.txt | head -20 IDENT Adresse du client Construction de ligne Aff_total 000001 LISTE ROUGE "3 paire(s) disponible(s)Calibre longueur : 0400385|RCRAT : ABBCode Commune RCRAT : 80001" 7.275 000002 LISTE ROUGE "3 paire(s) disponible(s)Calibre longueur : 0400400|RCRAT : ABBCode Commune RCRAT : 80001" 7.5 000003 LISTE ROUGE "3 paire(s) disponible(s)Calibre longueur : 0400385|RCRAT : ABBCode Commune RCRAT : 80001" 7.275 000004 LISTE ROUGE "4 paires au moins sont disponiblesCalibre longueur : 0400695|RCRAT : HESCode Commune RCRAT : 62447" 11.925 000005 LISTE ROUGE "4 paires au moins sont disponiblesCalibre longueur : 0400695|RCRAT : HESCode Commune RCRAT : 62447" 11.925 000006 LISTE ROUGE "3 paire(s) disponible(s)Calibre longueur : 0600880|0400135|RCRAT : FEQCode Commune RCRAT : 80308" 12.589 000007 LISTE ROUGE "3 paire(s) disponible(s)Calibre longueur : 0601630|0401145|RCRAT : FEQCode Commune RCRAT : 80308" 35.464 000008 LISTE ROUGE "4 paires au moins sont disponiblesCalibre longueur : 0603590|0400495|RCRAT : WOICode Commune RCRAT : 80827" 45.902 000009 LISTE ROUGE "Il n'y a pas de paire disponible à l'adresseCalibre longueur : 0401268|RCRAT : ABBCode Commune RCRAT : 80001" 20.52 000010 LISTE ROUGE "1 paire(s) disponible(s)Calibre longueur : 0602950|0402310|RCRAT : BUMCode Commune RCRAT : 80149" 66.535 000011 LISTE ROUGE "1 paire(s) disponible(s)Calibre longueur : 0602950|0402310|RCRAT : BUMCode Commune RCRAT : 80149" 66.535 000012 LISTE ROUGE "Il n'y a pas de paire disponible à l'adresseCalibre longueur : 0400345|RCRAT : ABBCode Commune RCRAT : 80001" 6.675 000013 LISTE ROUGE "Il n'y a pas de paire disponible à l'adresseCalibre longueur : 0400345|RCRAT : ABBCode Commune RCRAT : 80001" 6.675 000014 LISTE ROUGE "4 paires au moins sont disponiblesCalibre longueur : 0603523|RCRAT : ABBCode Commune RCRAT : 80001" 37.7869 000015 LISTE ROUGE "3 paire(s) disponible(s)Calibre longueur : 0401230|RCRAT : ABBCode Commune RCRAT : 80001" 19.95 000016 LISTE ROUGE "1 paire(s) disponible(s)Calibre longueur : 0606185|RCRAT : AULCode Commune RCRAT : 80039" 65.2055 000017 LISTE ROUGE "Il n'y a pas de paire disponible à l'adresseCalibre longueur : 0403620|RCRAT : ABBCode Commune RCRAT : 80001" 55.8 000018 LISTE ROUGE "Il n'y a pas de paire disponible à l'adresseCalibre longueur : 0403620|RCRAT : ABBCode Commune RCRAT : 80001" 55.8 000019 LISTE ROUGE "Il n'y a pas de paire disponible à l'adresseCalibre longueur : 0403620|RCRAT : ABBCode Commune RCRAT : 80001" 55.8
A faire sur ton fichier (le fichier original aura l'extension .orig)
perl -pi.orig -e '!/\r/?s/\n//:s/\r//' exemple_fichier.txt
Re,
Ouvrir avec quoi?
Pour l'info j'ai traité des fichiers avec 68201421 lignes.
Pour moi 3 millions n'est pas grande chose.
Mais je ne suis pas sur d'avoir saisi ton but.
Bon, le fichier on le parse. Mais que veux tu faire avec le fichier que tu obtiendras.
Au début tu parles d'une table. Je pense que tu dois donner un peu plus de détails.
Ouvrir avec quoi?
Pour l'info j'ai traité des fichiers avec 68201421 lignes.
Pour moi 3 millions n'est pas grande chose.
Mais je ne suis pas sur d'avoir saisi ton but.
Bon, le fichier on le parse. Mais que veux tu faire avec le fichier que tu obtiendras.
Au début tu parles d'une table. Je pense que tu dois donner un peu plus de détails.
Salut,
Dans la précipitation je me suis peut être mal exprimée.
Le fichier :
A la base j'ai un fichier TXT qui contient 3 millions de lignes et 5 colonnes.
Ce fichier a été construit à partir d'EXCEL, c'est une concaténation de plusieurs fichiers.
Dans la troisième colonne il y a des sauts de lignes, utilisation de ALT+ENTREE dans la cellule.
Mon environnement :
Je travail avec une base de données SAS dans un environnement Unix, j'y accède en utilisant EXCEED.
Mon taff :
Mon but est d'intégrer ce fichier dans ma base de données.
Mon PB :
Le fichier contient des sauts de lignes à l'intérieur d'une colonne qui font que lorsque j'importe ce fichier cette colonne se transforme en plusieurs nouvelles lignes (autant de lignes que de sauts de lignes présents dans la cellule…). Ce qui a pour impact de créer une table totalement fausse.
Ma solution "idéale" (non trouvée) :
Je dois retravailler mon fichier afin de supprimer (ou remplacer) ces sauts de lignes (ceux créer par ALT+ENTREE)
pour qu'une ligne de mon fichier corresponde à une ligne dans ma table.
Actuellement :
Les solutions que vous m'avez proposé, et je vous en remercie, supprime tous les sauts de lignes ce qui fait que je me retrouve avec un fichier contenant 1 ligne et donc inexploitable pour construire ma table.
Ma solution de contournement :
Je suis maintenant dans l'urgence donc je vais demander qu'on me renvoi un fichier déjà retravailler mais dans 1 mois je serais à nouveau confronter à ce problème donc si vous avez une solution elle sera la bienvenue.
J'espère avoir bien testé les codes que vous m'avez envoyés et avoir mieux exposé mon problème.
Merci de l'aide que vous m'avez apporté.
Dans la précipitation je me suis peut être mal exprimée.
Le fichier :
A la base j'ai un fichier TXT qui contient 3 millions de lignes et 5 colonnes.
Ce fichier a été construit à partir d'EXCEL, c'est une concaténation de plusieurs fichiers.
Dans la troisième colonne il y a des sauts de lignes, utilisation de ALT+ENTREE dans la cellule.
Mon environnement :
Je travail avec une base de données SAS dans un environnement Unix, j'y accède en utilisant EXCEED.
Mon taff :
Mon but est d'intégrer ce fichier dans ma base de données.
Mon PB :
Le fichier contient des sauts de lignes à l'intérieur d'une colonne qui font que lorsque j'importe ce fichier cette colonne se transforme en plusieurs nouvelles lignes (autant de lignes que de sauts de lignes présents dans la cellule…). Ce qui a pour impact de créer une table totalement fausse.
Ma solution "idéale" (non trouvée) :
Je dois retravailler mon fichier afin de supprimer (ou remplacer) ces sauts de lignes (ceux créer par ALT+ENTREE)
pour qu'une ligne de mon fichier corresponde à une ligne dans ma table.
Actuellement :
Les solutions que vous m'avez proposé, et je vous en remercie, supprime tous les sauts de lignes ce qui fait que je me retrouve avec un fichier contenant 1 ligne et donc inexploitable pour construire ma table.
Ma solution de contournement :
Je suis maintenant dans l'urgence donc je vais demander qu'on me renvoi un fichier déjà retravailler mais dans 1 mois je serais à nouveau confronter à ce problème donc si vous avez une solution elle sera la bienvenue.
J'espère avoir bien testé les codes que vous m'avez envoyés et avoir mieux exposé mon problème.
Merci de l'aide que vous m'avez apporté.
Salut,
Je ne comprends toujours pas.
La solution que je t'ai donné ne génere pas un fichier avec une seule ligne (celle de jipicy non plus)
Tape cette commande sur ton fichier de 3 millions lignes et affiche le résultat
Je ne comprends toujours pas.
La solution que je t'ai donné ne génere pas un fichier avec une seule ligne (celle de jipicy non plus)
Tape cette commande sur ton fichier de 3 millions lignes et affiche le résultat
perl -ne '!/\r/?s/\n//:s/\r//;print' fichier_3millions.txt | wc -l
Le fichier de test envoyé contient des TAB comme séparateur mon fichier contient des ; ... est ce que cela peut venir de la?
Dans le doute je te remets un nouveau fichier à dispo.
Dans le doute je te remets un nouveau fichier à dispo.
J'ai ouvert le ficher d'origine dans ultra edit,
j'ai copié les premieres lignes,
modifié quelques données pour garder la confidentialité
et enregistré mon fichier exemple..
https://www.cjoint.com/?lAkX66nLGF
Merci de ta patience face à mon ignorance :)
j'ai copié les premieres lignes,
modifié quelques données pour garder la confidentialité
et enregistré mon fichier exemple..
https://www.cjoint.com/?lAkX66nLGF
Merci de ta patience face à mon ignorance :)
Et par manque de connaissances je ne serais dire pourquoi..
Mais en tout cas quand je l'ouvre avec vi cela ne change rien.
quand j'ouvre mon fichier sous windows avec blocnote ou ultraedit:
champ1;champ2;champ3;champ4
ident01;blabla blabla blabla;10 ; blabla
ident02; ...
quand j'ouvre mon fichier sous unix :
champ1;champ2;champ3;champ4
indent01;blabla
blabla
blabla
10;blabla
indent02; ...