Soal 1Baris mana yang dianggap duplikat oleh uniq?
Alat Pembentuk Teks — sort / uniq / cut / wc / tr / tee
Latih pengurutan sort -n, hitung duplikat dengan sort | uniq -c, ekstraksi kolom cut -d',' -f1, hitungan baris wc -l, translasi tr 'a-z' 'A-Z', dan output ganda tee, satu perintah demi satu dengan diagram dan terminal.
Mengurutkan Baris — sort
Dalam artikel ini kamu akan melatih enam perintah pembentuk teks, satu demi satu: sort / uniq / cut / wc / tr / tee. Yang pertama adalah sort. Perintah ini menyusun ulang baris input dalam urutan kamus (karakter per karakter). Gunakan sort -n untuk mengurutkan baris sebagai angka, dan sort -r untuk urutan menurun. Dalam urutan kamus, 10 muncul sebelum 2 (karakter pertama 1 dan 2 yang dibandingkan), jadi mengurutkan angka membutuhkan -n.
| Bentuk | Arti |
|---|---|
sort | Mengurutkan baris dalam urutan kamus |
sort -n | Mengurutkan baris berdasarkan nilai angka |
sort -r | Membalik urutan (menurun) |
10 muncul sebelum 2. Tambahkan -n untuk urutan angka.printf 'cherry\napple\nbanana\n' > words.txt # buat file materi 3 baris
sort words.txt # apple banana cherry (urutan kamus)
sort -r words.txt # cherry banana apple (menurun)
printf '100\n9\n25\n' > scores.txt # buat file materi angka
sort scores.txt # 100 25 9 (urutan kamus menaruh 1 di depan)
sort -n scores.txt # 9 25 100 (urutan angka)
Menggabungkan Duplikat — uniq
uniq menggabungkan baris identik yang posisinya bersebelahan menjadi satu. Ia tidak pernah melihat duplikat yang berjauhan, jadi biasanya kamu menjalankan sort dulu untuk mendekatkan baris yang sama, lalu mengalirkan hasilnya lewat pipe. Tambahkan uniq -c dan setiap baris diawali jumlah kemunculannya — hitungan per kategori secara instan.
| Bentuk | Arti |
|---|---|
uniq | Menggabungkan baris identik yang bersebelahan jadi satu |
sort file.txt | uniq | Urutkan dulu agar duplikat yang berjauhan ikut tergabung |
uniq -c | Mengawali setiap baris dengan jumlah kemunculannya |
uniq hanya melihat duplikat yang bersebelahan, jadi jalankan sort dulu untuk mendekatkan baris yang sama.printf 'banana\napple\nbanana\napple\n' > items.txt # buat file materi 4 baris
sort items.txt # apple apple banana banana
sort items.txt | uniq # apple banana (duplikat dihapus)
sort items.txt | uniq -c # 2 apple / 2 banana (jumlah kemunculan)
Mengekstrak Kolom — cut
cut memecah setiap baris pada pemisah dan hanya menyimpan field yang kamu minta. Pemisah ditaruh setelah -d dan nomor field setelah -f, jadi cut -d',' -f1 mengambil kolom pertama dari CSV. Untuk beberapa field, daftarkan dengan koma seperti -f1,3. Inilah alat untuk mengambil hanya kolom yang kamu butuhkan dari CSV atau file konfigurasi yang dipisah titik dua.
| Bentuk | Arti |
|---|---|
cut -d',' -f1 | Mengekstrak field 1 dari baris yang dipisah koma |
cut -d':' -f1 | Mengekstrak field 1 dari baris yang dipisah : |
cut -d',' -f1,3 | Mengekstrak field 1 dan 3 sekaligus |
-d, dan hanya field bernomor di -f yang ditampilkan.printf 'root:x:0\nuser:x:1000\n' > passwd.txt # buat file materi dipisah titik dua
cut -d':' -f1 passwd.txt # hanya field 1 (nama)
cut -d':' -f1,3 passwd.txt # field 1 dan 3
Menghitung Baris, Kata, dan Byte — wc
wc menghitung baris, kata, dan byte dari inputnya. Tanpa opsi ia menampilkan ketiga angka; wc -l hanya menampilkan jumlah baris, wc -w hanya jumlah kata, dan wc -c hanya jumlah byte. Yang paling sering kamu pakai adalah wc -l — diberi input dari pipe, seperti ls | wc -l, ia menjawab pertanyaan seperti "ada berapa file?" atau "berapa baris yang cocok?"
| Bentuk | Arti |
|---|---|
wc | Menampilkan jumlah baris, kata, dan byte sekaligus |
wc -l | Hanya menampilkan jumlah baris |
wc -w | Hanya menampilkan jumlah kata |
wc -c | Hanya menampilkan jumlah byte |
printf 'one two three\nfour\n' > draft.txt # buat file materi 2 baris, 4 kata
wc draft.txt # jumlah baris, kata, dan byte sekaligus
wc -l draft.txt # 2 (hanya jumlah baris)
ls | wc -l # dari pipe: hitung jumlah file
Mentranslasi Karakter — tr
tr mengganti karakter dari input standar karakter per karakter. tr 'a-z' 'A-Z' mengubah huruf kecil menjadi kapital. tr -s memampatkan deretan karakter yang sama menjadi satu (misalnya spasi berulang), dan tr -d menghapus karakter yang kamu tentukan. tr tidak menerima nama file sebagai argumen — ia membaca dari pipe atau pengalihan input.
| Bentuk | Arti |
|---|---|
tr 'a-z' 'A-Z' | Mengubah huruf kecil menjadi kapital |
tr -s ' ' | Memampatkan karakter berulang menjadi satu |
tr -d 'x' | Menghapus karakter yang ditentukan |
-s), dan penghapusan (-d).echo 'hello linux' | tr 'a-z' 'A-Z' # HELLO LINUX
echo 'a b c' | tr -s ' ' # mampatkan spasi berulang -> a b c
echo 'a-b-c' | tr -d '-' # hapus - -> abc
Memisahkan Output ke Layar dan File — tee
tee mengambil apa yang diterimanya dari pipe, menampilkannya di layar, dan menulisnya ke file pada saat yang sama. Gunakan saat kamu ingin mencatat hasil antara sambil tetap meneruskan data ke perintah berikutnya. Dirangkai sebagai perintah | tee out.txt | perintah berikutnya, ia merekam ke out.txt sementara pipeline terus berjalan. Untuk menambahkan ke akhir file yang sudah ada alih-alih menimpanya, gunakan tee -a.
| Bentuk | Arti |
|---|---|
tee out.txt | Menulis ke layar dan file sekaligus (menimpa) |
tee -a out.txt | Menampilkan di layar dan menambahkan ke akhir file |
tee menampilkan apa yang diterimanya di layar, menulisnya ke file, dan kamu bisa memeriksanya nanti dengan cat.ls | tee list.txt # tampilkan daftar dan simpan ke list.txt
cat list.txt # di file juga ada
echo 'extra' | tee -a list.txt # -a menambahkan alih-alih menimpa
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Apa yang ditampilkan cut -d',' -f1 users.csv?
Soal 3Apa yang terjadi saat kamu menjalankan echo hi | tee out.txt?