Je ne m'y connais pas beaucoup en programmation et j'aurais besoin
d'une aide pour le traitement d'un fichier texte.
Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou
LF, et/ou \n) et je souhaiterais concaténer/joindre toutes les lignes,
mettre une espace à chaque jonction et de garder les lignes vides
telles quelles.
-------
Exemple:
-------
--Entree.txt--
ABCDE FGH IJ
KLMNOP QRST UV
WXYZ
abcd efgh
ij klmnopq
rstuvwx yz
12345
67
8
9
--Sortie.txt--
ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
--------
J'ai pensé que Perl pourrais permettre de réaliser ces opérations.
Je suis aussi preneur de script bash ou Vim.
Je vous remercie par avance de toute aide que vous pourrez
m'apporter.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vivien MOREAU
On 2010-12-20, Hector Gafouin wrote:
Je ne m'y connais pas beaucoup en programmation et j'aurais besoin d'une aide pour le traitement d'un fichier texte. Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou LF, et/ou n) et je souhaiterais concaténer/joindre toutes les lignes, mettre une espace à chaque jonction et de garder les lignes vides telles quelles.
Ton problème se résume donc à chercher les retours à la ligne dans ton fichier et à les remplacer par une espace.
C'est donc du Perl de base. Quel est ton problème exact, peut-on voir ce que tu as déjà écrit ? :-)
-- Message envoyé depuis mon iMug
On 2010-12-20, Hector Gafouin wrote:
Je ne m'y connais pas beaucoup en programmation et j'aurais besoin
d'une aide pour le traitement d'un fichier texte.
Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou
LF, et/ou n) et je souhaiterais concaténer/joindre toutes les lignes,
mettre une espace à chaque jonction et de garder les lignes vides
telles quelles.
Ton problème se résume donc à chercher les retours à la ligne
dans ton fichier et à les remplacer par une espace.
C'est donc du Perl de base. Quel est ton problème exact, peut-on
voir ce que tu as déjà écrit ? :-)
Je ne m'y connais pas beaucoup en programmation et j'aurais besoin d'une aide pour le traitement d'un fichier texte. Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou LF, et/ou n) et je souhaiterais concaténer/joindre toutes les lignes, mettre une espace à chaque jonction et de garder les lignes vides telles quelles.
Ton problème se résume donc à chercher les retours à la ligne dans ton fichier et à les remplacer par une espace.
C'est donc du Perl de base. Quel est ton problème exact, peut-on voir ce que tu as déjà écrit ? :-)
-- Message envoyé depuis mon iMug
Patrick Texier
Le 20 Dec 2010 13:44:13 +0100, Hector Gafouin a écrit :
J'ai pensé que Perl pourrais permettre de réaliser ces opérations. Je suis aussi preneur de script bash ou Vim.
C'est la fonction gw de Vim.
:set tw000000 gggwG -- Patrick Texier
vim:syntax=mail:ai:ts=4:et:twr
Le 20 Dec 2010 13:44:13 +0100, Hector Gafouin a écrit :
J'ai pensé que Perl pourrais permettre de réaliser ces opérations.
Je suis aussi preneur de script bash ou Vim.
Le 20 Dec 2010 13:44:13 +0100, Hector Gafouin a écrit :
J'ai pensé que Perl pourrais permettre de réaliser ces opérations. Je suis aussi preneur de script bash ou Vim.
C'est la fonction gw de Vim.
:set tw000000 gggwG -- Patrick Texier
vim:syntax=mail:ai:ts=4:et:twr
Benoit Izac
Bonjour,
le 20/12/2010 à 13:44, Hector Gafouin a écrit dans le message <4d0f4f9d$ :
Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou LF, et/ou n) et je souhaiterais concaténer/joindre toutes les lignes, mettre une espace à chaque jonction et de garder les lignes vides telles quelles.
------- Exemple: -------
--Entree.txt--
ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
--Sortie.txt--
ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
--------
J'ai pensé que Perl pourrais permettre de réaliser ces opérations.
#!/usr/bin/perl
use strict; use warnings;
{ local $/ = ""; while (<DATA>) { s/n+(?!$)/ /g; s/(S)s+(S)/$1 $2/g; # pas sûr que ce soit vraiment ce que tu veux s/^s+// if $. == 1; print; } }
__DATA__ ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
-- Benoit Izac
Bonjour,
le 20/12/2010 à 13:44, Hector Gafouin a écrit dans le message
<4d0f4f9d$1@news.x-privat.org> :
Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou
LF, et/ou n) et je souhaiterais concaténer/joindre toutes les lignes,
mettre une espace à chaque jonction et de garder les lignes vides
telles quelles.
-------
Exemple:
-------
--Entree.txt--
ABCDE FGH IJ
KLMNOP QRST UV
WXYZ
abcd efgh
ij klmnopq
rstuvwx yz
12345
67
8
9
--Sortie.txt--
ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
--------
J'ai pensé que Perl pourrais permettre de réaliser ces opérations.
#!/usr/bin/perl
use strict;
use warnings;
{
local $/ = "";
while (<DATA>) {
s/n+(?!$)/ /g;
s/(S)s+(S)/$1 $2/g;
# pas sûr que ce soit vraiment ce que tu veux
s/^s+// if $. == 1;
print;
}
}
le 20/12/2010 à 13:44, Hector Gafouin a écrit dans le message <4d0f4f9d$ :
Je dispose d'un fichier txt comportant des retours à la ligne (CR et/ou LF, et/ou n) et je souhaiterais concaténer/joindre toutes les lignes, mettre une espace à chaque jonction et de garder les lignes vides telles quelles.
------- Exemple: -------
--Entree.txt--
ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
--Sortie.txt--
ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
--------
J'ai pensé que Perl pourrais permettre de réaliser ces opérations.
#!/usr/bin/perl
use strict; use warnings;
{ local $/ = ""; while (<DATA>) { s/n+(?!$)/ /g; s/(S)s+(S)/$1 $2/g; # pas sûr que ce soit vraiment ce que tu veux s/^s+// if $. == 1; print; } }
__DATA__ ABCDE FGH IJ KLMNOP QRST UV WXYZ
abcd efgh
ij klmnopq rstuvwx yz
12345 67 8
9
-- Benoit Izac
Hector Gafouin
Benoit Izac tapota :
while (<DATA>) { s/n+(?!$)/ /g; s/(S)s+(S)/$1 $2/g; # pas sûr que ce soit vraiment ce que tu veux s/^s+// if $. == 1; print; } }
Merci beaucoup pour votre aide, cela me permet d'amorcer mon code.
Salutations,
-- ]-[ector
Benoit Izac tapota :
while (<DATA>) {
s/n+(?!$)/ /g;
s/(S)s+(S)/$1 $2/g;
# pas sûr que ce soit vraiment ce que tu veux
s/^s+// if $. == 1;
print;
}
}
Merci beaucoup pour votre aide, cela me permet d'amorcer mon code.