0Pricing
DevOps Bootcamp · Pelajaran

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.txt

Global & 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.txt

Menghapus 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.txt

awk: 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.txt

Menyaring 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.txt

Inisialisasi & 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.txt

Logika 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.txt

Pemeriksaan 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!

  • sed sangat cocok untuk penggantian sederhana, penghapusan, dan transformasi secara baris demi baris.
  • awk unggul 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

  1. Manipulasi Teks Lanjutan (sed, awk)
  2. Pengarsipan dan Kompresi (tar, gzip, unzip)
  3. Penggunaan Disk & Informasi Sistem (df, du, uname)
  4. Mengurutkan & Menghapus Duplikasi Data (sort, uniq, cut)
← Kembali ke DevOps Bootcamp