Setiap pekerjaan pengolahan teks dimulai dari satu kebutuhan mendasar: melihat isi file. Linux menyediakan tiga alat utama untuk itu — cat menampilkan seluruh isi file sekaligus, sedangkan less dan more menampilkan isi file per layar agar file panjang tetap nyaman dibaca. Pada chapter ini kita akan memakai cat untuk membaca file, memberi nomor baris, menggabungkan beberapa file, sampai menulis file baru lewat heredoc. Setelah itu kita mengenal pager less dan more, lalu menutup dengan zcat untuk membaca file terkompresi tanpa mengekstraknya.

Membaca File dengan cat #

Perintah cat adalah cara tercepat melihat isi file dari terminal. Nama cat singkatan dari concatenate (merangkai) karena tugas aslinya merangkai aliran teks. Opsi -n menambahkan nomor baris pada hasil tampilan — berguna saat kita perlu merujuk “baris ke sekian” saat berdiskusi atau menulis laporan:

bash
printf 'Materi: dasar pengolahan teks\nSumber: catatan kuliah\nTopik: cat dan pager\n' > catatan.txt
cat catatan.txt
cat -n catatan.txt

Output yang Dihasilkan:

text
Materi: dasar pengolahan teks
Sumber: catatan kuliah
Topik: cat dan pager
     1	Materi: dasar pengolahan teks
     2	Sumber: catatan kuliah
     3	Topik: cat dan pager

Perintah cat catatan.txt mencetak tiga baris apa adanya. Perintah cat -n catatan.txt mencetak baris yang sama dengan nomor urut di depannya — nomor dipisah tanda tab agar kolomnya rapi. Begitu isi file habis terbaca, cat langsung selesai dan mengembalikan kita ke prompt shell.

Menggabungkan Beberapa File dengan cat #

Bila cat menerima lebih dari satu nama file, cat membaca file-file itu secara berurutan dan mencetaknya sebagai satu aliran. Perilaku inilah yang dipakai untuk menggabungkan file dengan bantuan redirection >:

bash
printf 'bab satu: pengantar\n' > satu.txt
printf 'bab dua: latihan\n' > dua.txt
cat satu.txt dua.txt > gabung.txt
cat gabung.txt
cat -n satu.txt dua.txt

Output yang Dihasilkan:

text
bab satu: pengantar
bab dua: latihan
     1	bab satu: pengantar
     2	bab dua: latihan

Mari kita bedah baris per barisnya:

  1. Baris 1-2 (dua printf): membuat dua file kecil sebagai bahan latihan.
  2. Baris 3 (cat satu.txt dua.txt > gabung.txt): cat membaca satu.txt lalu dua.txt secara berurutan; redirection > menampung aliran gabungan itu ke file gabung.txt.
  3. Baris 4 (cat gabung.txt): membuktikan isi gabung.txt kini memuat kedua bab.
  4. Baris 5 (cat -n satu.txt dua.txt): penghitungan nomor baris berlanjut antar file — bab dua mendapat nomor 2, bukan mengulang dari 1, karena cat memperlakukan kedua file sebagai satu aliran.

Pola cat a b > c ini adalah cara standar menggabungkan file laporan atau hasil ekspor sebelum diproses lebih lanjut.

Tanpa nama file, cat membaca dari stdin. Dikombinasikan dengan heredoc dan redirection, cat berubah menjadi “editor sekali jalan” untuk menulis beberapa baris sekaligus tanpa membuka nano atau vim:

bash
cat > profil.txt << EOF
Nama: Budi
Kota: Jakarta
Hobi: membaca log
EOF
cat profil.txt

Output yang Dihasilkan:

text
Nama: Budi
Kota: Jakarta
Hobi: membaca log

Baris pertama memiliki tiga bagian: cat > profil.txt mengarahkan stdin cat ke file profil.txt, tanda << EOF membuka heredoc, dan semua baris sampai penanda EOF di baris terakhir menjadi isi file. Pembacaan cat profil.txt setelahnya menunjukkan ketiga baris tersimpan rapi. Penanda EOF bisa diganti kata lain (misalnya AKHIR), asalkan sama di awal dan akhir.

Membaca File Terkompresi dengan zcat #

File log lama biasanya dikompresi menjadi .gz untuk menghemat ruang. zcat membaca file gzip dan mencetak hasil dekompresinya ke stdout tanpa mengubah file aslinya:

bash
printf 'laporan penjualan minggu pertama\n' | gzip > laporan.txt.gz
zcat laporan.txt.gz

Output yang Dihasilkan:

text
laporan penjualan minggu pertama

Baris pertama membuat file gzip sebagai bahan latihan; baris kedua membukanya kembali. zcat bekerja persis seperti cat, hanya dengan tahap dekompresi di belakang layar. Karena keluarannya aliran stdout biasa, zcat bisa dirangkai dalam pipeline, misalnya zcat laporan.txt.gz | grep error. Keluarga serupa untuk pager adalah zless dan zmore.

Pager: Membaca Per Layar dengan less dan more #

cat mengosongkan seluruh file ke layar sekaligus — tidak masalah untuk tiga baris, tetapi untuk file 10.000 baris tampilan akan menggulung cepat dan bagian awal hilang. Pager menyelesaikannya: program pembaca interaktif yang menampilkan satu layar penuh lalu menunggu perintah navigasi dari kita.

Berikut contoh tampilan less saat membuka file panjang (baris paling bawah adalah status bawaan less):

text
baris ke-21 dari laporan
baris ke-22 dari laporan
baris ke-23 dari laporan
~
~
laporan.txt lines 21-23/96 43%

Tombol navigasi utama less yang perlu diingat:

TombolFungsi
Spasimaju satu layar
bmundur satu layar
Enter atau panahmaju satu baris
/pola lalu Entermencari pola, n lompat ke temuan berikutnya
g / Glompat ke awal / akhir file
qkeluar dari pager

more adalah pager yang lebih tua dan lebih sederhana: navigasi dasarnya sama (spasi, Enter, q), tetapi umumnya hanya bisa maju dan pencariannya terbatas. Keduanya standar POSIX sehingga hampir selalu tersedia. less adalah pager bawaan man di banyak distribusi dan layak menjadi default; nama ironisnya memang “less is more”.

Memilih antara cat, less, dan more #

KondisiAlat yang tepat
File pendek, sekadar melihat atau melanjutkan ke pipelinecat
File panjang, perlu navigasi dan pencarianless
File panjang di sistem minimalis tanpa lessmore
File terkompresi .gzzcat, zless
Menulis file baru beberapa bariscat dengan heredoc

Membaca file hanyalah langkah pertama. Begitu file terbuka, kebutuhan berikutnya hampir selalu sama: mencari baris tertentu di antara ribuan baris — tugas yang dikerjakan dengan sangat baik oleh grep, materi chapter berikutnya. Aturan lengkap kedua perintah bisa disimak di halaman manual cat(1) dan less(1) .