Hi, MWN’ers

pada file teks, setiap baris diakhiri oleh karakter tertentu yang tak terlihat (karakter ganti baris). Di sistem operasi Unix/Linux karakter ini adalah LF (kode ASCII 10), di sistem operasi Macintosh karakternya adalah CR (kode ASCII 13), di DOS/Windows akhiran baris ada 2 karakter CR dan LF / CRLF (kode ASCII 13 serta kode ASCII 10).

CR singkatan dari carriage return (karakter ini fungsinya untuk mengembalikan posisi kursor ke kolom 1). LF singkatan dari line feed (karakter ini fungsinya untuk berpindah 1 baris ke bawah). Nama karakter-karakter ini sejarahnya dari terminal.

Penyesuaian akhiran baris

Dalam mentransfer file teks antara sistem operasi, perlu ada penyesuaian akhiran baris. Contohnya, dari Unix ke DOS perlu ada penambahan karakter CR di setiap baris sebelum karakter LF. Sebaliknya dari DOS ke Unix kita perlu menghilangkan karakter CR di setiap baris.

Jika kita melakukan transfer file lewat FTP dengan mode ASCII, maka hal ini dilakukan otomatis. Jika dengan cara lain, misalnya mengunggah lewat browser, maka kadang-kadang juga disediakan opsi untuk menyesuaikan akhiran baris.

Jika kita tidak melakukan penyesuaian akhiran baris, efeknya bisa bermacam-macam, misalnya ada program yang tidak bekerja, muncul karakter aneh, dsb. Contoh, file Unix yang dibuka di program Notepad Windows akan tampil seperti satu baris panjang yang berentet, dengan dipisahkan karakter kotak kecil yang aneh:

Notepad unix line ending My CMS

Sebaliknya jika file DOS dibuka di editor teks Unix seperti emacs atau joe, maka akan muncul karakter seperti ^M, M, (sebetulnya ini bukan karakter literal M atau Z, melainkan karakter CR):

Notepad unix line ending My CMS

Tapi editor teks seperti joe, emacs, vim dll (dan juga editor teks yang lebih bagus di Windows seperti Win32Pad, UltraEdit, dan ratusan jenis editor lainnya) dapat mendeteksi otomatis akhiran baris dan bekerja dengan berbagai jenis akhiran baris.

Mendeteksi akhiran baris

Di Windows

XXX

Di Unix

Beberapa cara:

1. Dengan editor teks, misalnya MWNERS. Buka file teksnya dengan nama MWNERS. Jika muncul karakter M dengan garis bawah di setiap akhir baris, artinya itu file DOS. Jika belum muncul, coba tekan ^T-Z dulu (sebab mungkin saja MWNERS sudah melakukan deteksi otomatis). Jika muncul karakter M bergaris bawah, itu file DOS.

2. Dengan skrip Perl ini:

$ perl -n0 -E'say /\r/ ? "DOS" : "Unix"' NAMAFILE

Mengkonversi akhiran baris

Di Windows

XXX

Di Unix

1. Dengan program fromdos dan todos (tersedia di paket tofrodos jika di Debian).

# dari DOS ke Unix $ fromdos NAMAFILE
# dari Unix ke DOS $ todos NAMAFILE

2. Dengan skrip Perl ini:

# dari DOS ke Unix $ perl -pi~ -e's/\r//' NAMAFILE
# dari Unix ke DOS $ perl -pi~ -e's/\r?\n/\r\n/' NAMAFILE