Outil pour formater un texte sur une ligne

Outil pour formater un texte sur une ligne - Logiciels - Windows & Software

Marsh Posté le 18-04-2013 à 09:04:27    

Bonjour,
 
Je suis à la recherche d'un outil qui me permettrait de formater un texte sans devoir coder à la main un nouveau script sous Excel.
 
J'ai actuellement un fichier texte qui contient toutes les données sur une ligne séparée par des tabulations.
 
Kalissa 25 ans Valence Juju 23 ans Saint-Etienne Photographe 28 ans Grenoble Cécile  27 ans Grenoble
 
J'aimerais pouvoir ajouter un saut de ligne toutes les 3 tabulations afin de pouvoir charger correctement mon fichier dans Excel par la suite.
 
Kalissa 25 ans Valence
Juju 23 ans Saint-Etienne
Photographe 28 ans Grenoble  
Cécile  27 ans Grenoble
 
Connaissez-vous un outil sous windows qui permette ce genre de manipulation de données ?
 
Merci ! :)


---------------
Mon blog séduction
Reply

Marsh Posté le 18-04-2013 à 09:04:27   

Reply

Marsh Posté le 18-04-2013 à 10:14:24    

avec notepad++ ca doit être faisable grâce a la recherche/remplacement par expression régulière


---------------
#mais-chut
Reply

Marsh Posté le 19-04-2013 à 11:10:04    

J'ai déjà utilisé les expressions régulière mais je ne vois pas comment faire pour indiquer de ne traiter qu'une tabulation sur 3 ???
 
Si tu as un exemple d'itération avec une expression régulière, je suis preneur ! :)
 
Merci !


---------------
Mon blog séduction
Reply

Marsh Posté le 21-04-2013 à 09:28:39    

Remplacer  une chaîne que je vais décrire comme "aaa(TAB)bbb(TAB)ccc(TAB)" par "aaa(TAB)bbb(TAB)ccc(Retour à la ligne)" ? tout simplement.
Cela devrait marcher.

 

je ne sais pas comment décrire ça :whistle: j'essaie de bidouiller avec sed sous linux.


Message édité par blazkowicz le 21-04-2013 à 09:39:47
Reply

Marsh Posté le 21-04-2013 à 10:28:06    

je rame comme un couillon
sur cette page http://www.commentcamarche.net/faq [...] et-astuces j'ai trouvé

Citation :


Joindre les lignes 2 par 2

 

   sed '$!N;s/\n//'

 

Joindre les lignes 3 par 3

 

   sed '$!N;s/\n//;$!N;s/\n//;'

 

en remplaçant les tabs par des lignes d'abord : tr \\t \\n

Citation :


Kalissa
25 ans
Valence
Juju
23 ans
Saint-Etienne
Photographe
28 ans
Grenoble
Cécile
27 ans
Grenoble

 

puis en lançant le sed ça me donne

Citation :


Kalissa25 ansValence
Juju23 ansSaint-Etienne
Photographe28 ansGrenoble
Cécile27 ansGrenoble

 

et bien sûr je rame comme un con pour modifier le sed.
Ah, j'y suis arrivé en essayant de le comprendre mieux! sachant que chaque s/\n//  était une commande de substitution pour remplacer "retour à la ligne" par "rien". donc /s\n/\t remplace retour à la ligne par tab.
Je ne sais pas ce que veux dire $!N.
";" sépare des commandes sed ("s" étant la commande sed la plus connue et utilisée, voulant dire "substitution).

 

Au final, avec le fichier de test cela donne
cat test.txt|tr \\t \\n|sed '$!N;s/\n/\t/;$!N ;s/\n/\t/;'
ou ce qui est identique : tr \\t \\n<test.txt|sed '$!N;s/\n/\t/;$!N ;s/\n/\t/;'


Message édité par blazkowicz le 21-04-2013 à 11:01:30
Reply

Marsh Posté le 21-04-2013 à 10:48:38    

PS : dans le pire des cas tu peux télécharger tr et sed pour Windows (collection UnxUtils, ou un shell MSYS..)
sinon tu peux essayer de reproduire cette logique, en partant également d'un fichiers avec les tabs convertis en retours à la ligne si l'éditeur de texte (comme notepad++) permet de bidouiller avec les lignes.


Message édité par blazkowicz le 21-04-2013 à 10:50:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed