Řešení v Perlu je podobné řešení sed od sampson-chen :
perl -pe 's/\\n/\n/g'
Příklady:
Vstupní soubor s literálem \n (nikoli nové řádky):
$ cat test1.txt
foo\nbar\n\nbaz
Nahraďte doslovně všechny výskyty \n
se skutečnými novými řádky, tisk do STDOUT
:
$ perl -pe 's/\\n/\n/g' test1.txt
foo
bar
baz
Stejně tak změňte vstupní soubor na místě a zálohu uložte do test1.txt.bak
:
$ perl -i.bak -pe 's/\\n/\n/g' test1.txt
Jednořádkový Perl používá tyto příznaky příkazového řádku:
-e
:Řekne Perlu, aby hledal kód in-line, nikoli v souboru.
-p
:Opakujte vstup jeden řádek po druhém a přiřaďte jej $_
ve výchozím stavu. Přidejte print $_
po každé iteraci smyčky.
-i.bak
:Úprava vstupních souborů na místě (přepsání vstupního souboru). Před přepsáním uložte záložní kopii původního souboru tak, že k jeho názvu přidáte příponu .bak
.
VIZ TAKÉ:
perldoc perlrun
:jak spustit interpret Perl:přepínače příkazového řádku
perldoc perlre
:Regulární výrazy Perlu (regexy)
Zde je návod, jak to udělat s sed
:
sed 's/\\n/\n/g'
Příklad použití:
Chcete-li nahradit všechny výskyty \n
v souboru na místě:
sed -i 's/\\n/\n/g' input_filename
Chcete-li nahradit všechny výskyty \n
kanálem a uložit do jiného souboru
cat file1 file2 file3 file4 | sed 's/\\n/\n/g' > output_file