La solution Perl est similaire à la solution sed de sampson-chen :
perl -pe 's/\\n/\n/g'
Exemples :
Fichier d'entrée avec \n littéral (pas de nouvelle ligne) :
$ cat test1.txt
foo\nbar\n\nbaz
Remplacer littéralement toutes les occurrences de \n
avec les nouvelles lignes réelles, imprimer en STDOUT
:
$ perl -pe 's/\\n/\n/g' test1.txt
foo
bar
baz
Idem, modifiez le fichier d'entrée sur place, en enregistrant la sauvegarde dans test1.txt.bak
:
$ perl -i.bak -pe 's/\\n/\n/g' test1.txt
Le one-liner Perl utilise ces drapeaux de ligne de commande :
-e
:indique à Perl de rechercher le code en ligne, plutôt que dans un fichier.
-p
:boucle sur l'entrée une ligne à la fois, en l'attribuant à $_
par défaut. Ajouter print $_
après chaque itération de boucle.
-i.bak
:Modifier les fichiers d'entrée sur place (écraser le fichier d'entrée). Avant d'écraser, enregistrez une copie de sauvegarde du fichier d'origine en ajoutant à son nom l'extension .bak
.
VOIR AUSSI :
perldoc perlrun
:comment exécuter l'interpréteur Perl :commutateurs de ligne de commande
perldoc perlre
:Expressions régulières Perl (regex)
Voici comment le faire avec sed
:
sed 's/\\n/\n/g'
Exemple d'utilisation :
Pour remplacer toutes les occurrences de \n
dans un fichier sur place :
sed -i 's/\\n/\n/g' input_filename
Pour remplacer toutes les occurrences de \n
à travers un tuyau, et enregistrer dans un autre fichier
cat file1 file2 file3 file4 | sed 's/\\n/\n/g' > output_file