Konwersja znaków końca linii w plikach tekstowych

vi - konwersja znaków końca linii
vi – konwersja znaków końca linii

Rożne rodziny systemów operacyjnych używają rożnych znaków końca linii w plikach tekstowych. Otwierając w edytorze Vim plik ze znakami końca linii właściwymi systemom Windows na końcach linii zobaczymy tajemnicze znaki ^M. Jednak konwersja znaków końca linii w plikach tekstowych nie stanowi problemu.

Znaki końca linii

W plikach tekstowych opartych o standard ASCII używane są kombinacje znaków LF i CR. Możemy wyróżnić m.in. następujące rodzaje oznaczeń końca linii:

  • LF w systemach Unix i uniksopodobnych (Linux, OS X, FreeBSD, AIX), AmigaOS, RISC OS
  • CR+LF w systemach Microsoft Windows, DOS (MS-DOS, IBM PC DOS, itp.), OS/2, Symbian OS, Palm OS
  • CR w Mac OS do wersji 9, OS-9, ZX Spectrum

Znaki RS, 0x9B, LF+CR były stosowane w innych nierozwijanych już systemach operacyjnych.

LF – Line Feed (znak nowego wiersza / znak zmiany wiersza)
CR – Carriage Return (powrót karetki)
RS – Record Separator (0x1E)

W plikach z kodowaniem UTF mogą byś stosowane również inne znaki końca linii.

Za pomocą programu file w prosty sposób możemy sprawdzić sposób oznaczania końca linii w pliku.

Konwersja znaków końca linii

Konwersji znaków końca linii możemy dokonać na wiele sposobów, np. za pomocą programów dos2unix (fromdos, d2u) i unix2dos (todos, u2d). Nazwa programu zdradza jego działanie. Użycie tych programów jest banalnie proste, jako jedyny argument wystarczy podać ścieżkę do konwertowanego pliku.
Do konwersji znaków końca linii można także wielu innych narzędzi między innymi: tr, col, recode, sed, perl.

Konwersja CRLF na LF (Windows → systemy uniksopodobne)

Również w edytorze Vim możemy dokonać zamiany znaków końca linii. W tym celu należy wpisać polecenie i zatwierdzić następujące polecenie :s/^M$// aby uzyskać znak ^M należy użyć kombicacji klawiszy Ctrl + V i Ctrl + M

Konwersja LF na CRLF (systemy uniksopodobne → Windows)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

To prevent spam, URLs are not allowed in comments. All comments are moderated and subject to approval.
Aby zapobiec spamowi, adresy URL nie są dozwolone w komentarzach. Wszystkie komentarze są moderowane i podlegają zatwierdzeniu.