Manipulasi Teks Lanjutan (sed, awk)
Pelajari 'sed' untuk penyuntingan aliran serta 'awk' untuk pemrosesan teks, pemindaian pola, dan ekstraksi data yang canggih.
Manipulasi Teks Lanjutan (sed, awk) adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Mengedit Aliran dengan sed
sed, singkatan dari "editor aliran", adalah utilitas baris perintah yang kuat untuk mengurai dan mengubah teks. Perintah ini memproses aliran teks baris demi baris. Anggap saja sebagai editor teks noninteraktif.
sed membaca satu baris, menerapkan perintah (seperti penggantian atau penghapusan), mencetak hasilnya, lalu berpindah ke baris berikutnya. Hal ini membuatnya sangat efisien untuk berkas besar atau data yang disalurkan.
Penggantian Teks Sederhana
Penggunaan sed yang paling umum adalah mengganti teks. Kita menggunakan perintah s, diikuti pembatas (sering kali /), pola yang ingin dicari, pembatas lain, teks pengganti, dan pembatas terakhir.
Sintaks: sed 's/pattern/replacement/' filename
Cobalah mengganti "apple" dengan "orange" dalam berkas contoh:
#!/bin/bash
# Create a sample file
echo "I like red apple." > fruits.txt
echo "My favorite fruit is apple." >> fruits.txt
echo "Another apple here." >> fruits.txt
echo "Original content:"
cat fruits.txt
echo ""
echo "---"
echo "Running sed command:"
sed 's/apple/orange/' fruits.txt
# Clean up
rm fruits.txtGlobal & Tidak Peka Huruf Besar-Kecil
Secara default, sed hanya mengganti kemunculan pertama suatu pola pada setiap baris. Untuk mengganti semua kemunculan dalam satu baris, gunakan flag g (global).
Untuk melakukan pencarian yang tidak membedakan huruf besar dan kecil, gunakan flag i. Anda dapat menggabungkan beberapa flag, seperti gi.
Contoh: Ganti semua "apple" (tanpa membedakan huruf besar dan kecil) menjadi "banana".
#!/bin/bash
# Create a sample file
echo "Apple is good." > fruits.txt
echo "I eat an apple and another Apple." >> fruits.txt
echo "Apples are tasty." >> fruits.txt
echo "Original content:"
cat fruits.txt
echo ""
echo "---"
echo "Running sed command (s/apple/banana/gi):"
sed 's/apple/banana/gi' fruits.txt
# Clean up
rm fruits.txtMenghapus Baris dengan sed
Anda juga dapat menggunakan sed untuk menghapus seluruh baris yang cocok dengan pola tertentu. Perintah d digunakan untuk keperluan ini.
Sintaks: sed '/pattern/d' filename
Ini berguna untuk menghapus baris yang tidak diinginkan, seperti entri log yang berisi "DEBUG" atau baris kosong.
Mari hapus baris yang berisi "error":
#!/bin/bash
# Create a sample file
echo "INFO: User logged in." > log.txt
echo "WARNING: Disk space low." >> log.txt
echo "ERROR: File not found." >> log.txt
echo "INFO: Operation complete." >> log.txt
echo "ERROR: Permission denied." >> log.txt
echo "Original content:"
cat log.txt
echo ""
echo "---"
echo "Running sed command (/error/d):"
sed '/error/d' log.txt
# Clean up
rm log.txtawk: Bahasa Pemindaian Pola
awk adalah alat pemrosesan teks lain yang sangat andal, yang sering digunakan untuk mengekstrak data dan membuat laporan. Jika sed adalah penyunting aliran, awk lebih menyerupai bahasa pemrograman yang dirancang untuk teks.
awk memproses berkas teks baris demi baris, sama seperti sed. Namun, alat ini memperlakukan setiap baris sebagai "rekaman" dan membagi rekaman menjadi "medan" (kolom) berdasarkan pemisah.
Secara default, awk menggunakan spasi kosong (spasi, tab) sebagai pemisah medan.
Mengakses Medan Data
Dalam awk, medan dirujuk dengan $1, $2, $3, dan seterusnya. $0 mewakili seluruh baris.
Anda dapat mencetak medan tertentu menggunakan perintah print di dalam kurung kurawal {}. Sintaksnya adalah: awk '{ print $FIELD_NUMBER }' filename
Mari cetak medan pertama dan ketiga dari berkas data sederhana:
#!/bin/bash
# Create a sample file
echo "Name Age City" > data.txt
echo "Alice 30 NewYork" >> data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt
echo "Original content:"
cat data.txt
echo ""
echo "---"
echo "Running awk command (print $1, $3):"
awk '{print $1, $3}' data.txt
# Clean up
rm data.txtMenyaring Baris dengan awk
Sama seperti sed, awk juga dapat menyaring baris berdasarkan pola. Anda menentukan pola sebelum blok tindakan. Tindakan hanya akan dilakukan pada baris yang cocok dengan pola tersebut.
Sintaks: awk '/pattern/ { action }' filename
Mari cari dan cetak hanya nama orang dari "London":
#!/bin/bash
# Create a sample file
echo "Name Age City" > data.txt
echo "Alice 30 NewYork" >> data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt
echo "David 28 London" >> data.txt
echo "Original content:"
cat data.txt
echo ""
echo "---"
echo "Running awk command (/London/ {print $1}):"
awk '/London/ {print $1}' data.txt
# Clean up
rm data.txtInisialisasi & Penyelesaian dengan awk
awk memungkinkan Anda menentukan tindakan yang dilakukan sebelum memproses baris apa pun (blok BEGIN) dan setelah semua baris selesai diproses (blok END).
Blok BEGIN sangat cocok untuk mencetak tajuk atau menginisialisasi variabel. Blok END cocok untuk mencetak ringkasan, total, atau catatan kaki.
Mari tambahkan tajuk dan catatan kaki ke keluaran kita:
#!/bin/bash
# Create a sample file
echo "Alice 30 NewYork" > data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt
echo "Original content:"
cat data.txt
echo ""
echo "---"
echo "Running awk command (BEGIN/END):"
awk 'BEGIN { print "--- User Data ---" } { print $1, $2 } END { print "--- End Report ---" }' data.txt
# Clean up
rm data.txtLogika Kondisional dalam awk
Anda dapat menggunakan pernyataan if di dalam blok tindakan awk untuk menerapkan logika berdasarkan nilai medan atau kondisi lainnya. Hal ini membuat awk sangat andal untuk penyaringan dan transformasi data yang kompleks.
Sintaks: awk '{ if (condition) { action } }' filename
Mari cetak hanya pengguna yang berusia lebih dari 25 tahun:
#!/bin/bash
# Create a sample file
echo "Alice 30 NewYork" > data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt
echo "Diana 27 Berlin" >> data.txt
echo "Original content:"
cat data.txt
echo ""
echo "---"
echo "Running awk command (if $2 > 25):"
awk '{ if ($2 > 25) { print $1, $2 } }' data.txt
# Clean up
rm data.txtPemeriksaan Cepat: sed & awk
Perhatikan isi berikut dalam berkas bernama names.txt:
John Doe,30,New York
Jane Smith,25,London
Peter Jones,40,Paris
Manakah dari perintah berikut yang akan menampilkan hanya nama (medan pertama) orang yang berusia lebih dari 30 tahun?
Ringkasan: Kekuatan sed & awk
Anda telah mempelajari keunggulan sed untuk penyuntingan aliran dan awk untuk pemrosesan teks tingkat lanjut!
sedsangat cocok untuk penggantian sederhana, penghapusan, dan transformasi secara baris demi baris.awkunggul dalam mengurai teks terstruktur, bekerja dengan medan, serta menerapkan logika kondisional untuk ekstraksi data dan pembuatan laporan.
Alat-alat ini sangat penting untuk pembuatan skrip, analisis log, dan manipulasi data dalam lingkungan Linux.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Manipulasi Teks Lanjutan (sed, awk)” gratis?
Ya — teks lengkap “Manipulasi Teks Lanjutan (sed, awk)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Manipulasi Teks Lanjutan (sed, awk)”?
Pelajari 'sed' untuk penyuntingan aliran serta 'awk' untuk pemrosesan teks, pemindaian pola, dan ekstraksi data yang canggih. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Manipulasi Teks Lanjutan (sed, awk)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Manipulasi Teks Lanjutan (sed, awk)
- Pengarsipan dan Kompresi (tar, gzip, unzip)
- Penggunaan Disk & Informasi Sistem (df, du, uname)
- Mengurutkan & Menghapus Duplikasi Data (sort, uniq, cut)