Envoyé par
ggnore
echo "<A> blablabla </A><B>blablabla</B><A>blabla..</A>" | sed "s/></>\n</g"
1 2 3 4 5 6 7 8 9 10
| #!/usr/bin/perl
use strict;
use warnings;
my $bla="<A> blablabla </A><B>blablabla</B><A>blabla..</A>";
$bla =~ s/></>\n</g;
print $bla; |
Chez moi la regex avec sed ne fonctionne pas car "\n" doit renvoyer "n"
j'ai essayé:
1 2
| # Attention si tu veux garder la modif dans le même fichier il faudra passer par un fichier temporaire
sed "s/></>\\\n</g" test.txt > result.txt | mv -f result.txt test.txt |
où le fichier contient ta ligne et j'obtiens
<A> blablabla </A>\n<B>blablabla</B>\n<A>blabla..</A>
a priori il n'interprète pas le "\n" comme un retour à la ligne
si tu veux le faire en perl, tu ne pourras pas non plus enregistrer directement la modif dans le fichier d'origine
perl -e 'open(FIC_IN, "test.txt"); my @lignes; while (<FIC_IN>){print $_; $_=~s/></>\n</g; print ">$_<"; close(FIC_IN);push(@lignes, $_);} open(FIC_OUT, ">", "test2.txt"); foreach my $line (@lignes){print FIC_OUT "$line";}'
Partager