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:
printf 'Materi: dasar pengolahan teks\nSumber: catatan kuliah\nTopik: cat dan pager\n' > catatan.txt
cat catatan.txt
cat -n catatan.txtOutput yang Dihasilkan:
Materi: dasar pengolahan teks
Sumber: catatan kuliah
Topik: cat dan pager
1 Materi: dasar pengolahan teks
2 Sumber: catatan kuliah
3 Topik: cat dan pagerPerintah 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 >:
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.txtOutput yang Dihasilkan:
bab satu: pengantar
bab dua: latihan
1 bab satu: pengantar
2 bab dua: latihanMari kita bedah baris per barisnya:
- Baris 1-2 (dua
printf): membuat dua file kecil sebagai bahan latihan. - Baris 3 (
cat satu.txt dua.txt > gabung.txt):catmembacasatu.txtlaludua.txtsecara berurutan; redirection>menampung aliran gabungan itu ke filegabung.txt. - Baris 4 (
cat gabung.txt): membuktikan isigabung.txtkini memuat kedua bab. - Baris 5 (
cat -n satu.txt dua.txt): penghitungan nomor baris berlanjut antar file —bab duamendapat nomor2, bukan mengulang dari1, karenacatmemperlakukan kedua file sebagai satu aliran.
Pola cat a b > c ini adalah cara standar menggabungkan file laporan atau hasil ekspor sebelum diproses lebih lanjut.
Menulis File dengan Heredoc #
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:
cat > profil.txt << EOF
Nama: Budi
Kota: Jakarta
Hobi: membaca log
EOF
cat profil.txtOutput yang Dihasilkan:
Nama: Budi
Kota: Jakarta
Hobi: membaca logBaris 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:
printf 'laporan penjualan minggu pertama\n' | gzip > laporan.txt.gz
zcat laporan.txt.gzOutput yang Dihasilkan:
laporan penjualan minggu pertamaBaris 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):
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:
| Tombol | Fungsi |
|---|---|
Spasi | maju satu layar |
b | mundur satu layar |
Enter atau panah | maju satu baris |
/pola lalu Enter | mencari pola, n lompat ke temuan berikutnya |
g / G | lompat ke awal / akhir file |
q | keluar 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 #
| Kondisi | Alat yang tepat |
|---|---|
| File pendek, sekadar melihat atau melanjutkan ke pipeline | cat |
| File panjang, perlu navigasi dan pencarian | less |
File panjang di sistem minimalis tanpa less | more |
File terkompresi .gz | zcat, zless |
| Menulis file baru beberapa baris | cat 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)
.