GNU/Linux >> Znalost Linux >  >> Linux

příkaz tr - jak nahradit řetězec \n skutečným novým řádkem (\n)

Ř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

Linux
  1. Jak nahradit řetězec v souboru (souborech)?

  2. Jak zajistit, aby Iconv nahradil vstupní soubor převedeným výstupem?

  3. Jak přidat nový řádek na konec souboru?

  1. Jak používat příkaz Tar v Linuxu

  2. Jak najít proces s maximálním počtem deskriptorů souborů?

  3. Jak nahradit soubor v jar příkazovým řádkem v linuxu?

  1. Jak auditovat oprávnění pomocí příkazu find

  2. Nahradit nový řádek nulou?

  3. Jak mohu smazat nový řádek, pokud je to poslední znak v souboru?