GNU/Linux >> Znalost Linux >  >> Linux

DOS až Unix:Příkazy a příklady

Úvod

Soubory vytvořené v DOS/Windows používají návrat vozíku (\r ) a odřádkování (\n ) pro zakončení řádků. Soubory v Unixu/Linuxu však používají pouze odřádkování.

Proto při přenosu souboru z jednoho systému do druhého nezapomeňte soubory převést.

V tomto tutoriálu se naučíte přenášet soubory z DOSu do Unixu a naopak.

Převod souborů v systému Linux

Existuje několik způsobů, jak můžete přenést soubory tak, aby byly použity příslušné konce řádků. Převeďte soubory pomocí:

  • dos2unix příkaz
  • unix2dos příkaz
  • sed příkaz (viz návod k příkazům Linux sed)
  • tr příkaz
  • Vi/Vim textový editor (viz cheat sheet pro příkazy Vim)
  • perl příkaz one-liner

Možnost 1:Převod DOS na UNIX pomocí příkazu dos2unix

Nejjednodušší způsob, jak převést konce řádků v textovém souboru, je použít dos2unix nástroj.

Nainstalujte nástroj spuštěním příkazu:

sudo apt install dos2unix

nebo:

sudo dnf install dos2unix

Pokud si do systému Linux stáhnete soubor vytvořený v DOS/Windows, můžete jej převést pomocí dos2unix příkaz:

dos2unix [file_name]

Příkaz převede soubor, aniž by jej uložil v původním formátu. Pokud chcete uložit původní soubor, přidejte -b atribut před názvem souboru. Tím se vytvoří záložní soubor pod stejným názvem a .bak rozšíření.

dos2unix -b [file_name]

Možnost 2:Převod UNIX na DOS pomocí příkazu unix2dos

Chcete-li převést soubor vytvořený v systému Linux do formátu DOS, spusťte příkaz:

unix2dos [file_name]

Případně přidejte -b atribut pro uložení původního souboru jako zálohy:

unix2dos -b [file_name]

Možnost 3:Použití příkazu sed

Můžete také použít sed (editor streamu) příkaz k odstranění řádku návratu vozíku koncovky. Syntaxe příkazu k tomu je:

sed 's/^M$//' [original_file_name]>[converted_file_name]

Místo pouhého psaní ^M , stiskněte Ctrl+V a poté Ctrl+M zadejte symbol návratu vozíku. Při použití sed zadejte název souboru DOS [original_file_name] a jak chcete převedený soubor pojmenovat [converted_file_name] .

Chcete-li změnit formát souboru z Unixu na DOS , použijte příkaz:

sed 's/$/^M/' [original_file_name]>[converted_file_name]

Možnost 4:Použití příkazu tr

Dalším způsobem, jak převést soubor do formátu Unix, je odstranit \r řádky končí znakem tr příkaz. tr command je nástroj příkazového řádku pro překlad nebo mazání znaků.

Použijte příkaz v následujícím formátu:

tr -d '\r' < [original_file_name]>[converted_file_name]

Možnost 5:Použití textového editoru Vim

Pomocí textového editoru Vi/Vim můžete také odstranit konce řádků konce řádku ze souborů ve formátu DOS.
Otevřete soubor ve Vi/Vim:

vi [file_name]

Poté stiskněte : a zadejte následující příkaz Vi/Vim (ujistěte se, že jste zadali Ctrl+V poté Ctrl+m místo ^m ):

:%s/^ m //g

Možnost 6:Použití Perl One Liner

Nakonec můžete použít jednořádkový příkaz Perl k odstranění všech \r konce řádků. Pearl on-linery jsou skripty, které se vejdou do jednoho řádku kódu.

Chcete-li nahradit všechny konce konce řádku a konce řádku pouze posuny řádku:

1. Otevřete soubor v textovém editoru Vi/Vim.

2. Stiskněte : k zobrazení výzvy na příkazovém řádku.

3. Zadejte následující příkaz a stiskněte klávesu Enter:

perl -pi -e 's/\r\n/\n/g' [file_name]

Okamžitě byste měli vidět změny v souboru.

Příklad:Převod ukázkového souboru z DOSu do formátu Unix

Řekněme, že jste si stáhli soubor s názvem sample-dos-file .

Otevřením souboru pomocí textového editoru Vim/Vi byste viděli, že za každým koncem řádku je ^M (návrat vozíku).

Dalším způsobem, jak vidět, že soubor používá pro zakončení řádků jak návrat vozíku, tak posun řádku, je zobrazit soubor v osmičkových hodnotách.

Chcete-li to provést, spusťte příkaz:

od -bc sample-dos-file.txt

Výstup zobrazuje obsah souboru s jeho osmičkovými hodnotami, jako na obrázku níže. Vidíte, že každý konec řádku je označen osmičkovými hodnotami 015 (\r) a 012 (\n) .

Nyní, abyste převedli soubor a odstranili všechny konce konce řádku, spustili byste příkaz:

dos2unix sample-dos-file

Otevřete stejný soubor ve Vim/Vi. Nezahrnuje žádné ^M symboly signalizující konec řádku.

Chcete-li ověřit, zda je soubor ve formátu Unix, můžete také otevřít zobrazení obsahu v osmičkových hodnotách. Na výstupu by se mělo zobrazit pouze 012 hodnoty pro \n .


Linux
  1. 6 Příklady příkazů mv pro přesun nebo přejmenování souborů a adresářů systému Linux

  2. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  3. V příkladech příkazů v Linuxu

  1. Linuxové příkazy – přehled a příklady

  2. soubor Příklady příkazů v Linuxu

  3. příklady příkazů tail v UNIX/Linux

  1. Linuxové příkazy:jobs, bg a fg

  2. Příkaz Linux AWK – Příklady syntaxe použití Linuxu a Unixu

  3. Příkaz mv v Linuxu:7 základních příkladů