Salah satu operasi yang paling umum digunakan di terminal Linux adalah mencari melalui file teks dan menyaring keluaran standar atau aliran kesalahan. Linux menyediakan alat hebat yang memungkinkan kita untuk menyelesaikan tugas itu dengan mudah – grep. Dalam artikel ini kami akan membahas kasus penggunaan grep yang paling umum yang pasti akan menyederhanakan rutinitas harian Anda.
Apa itu grep
Grep adalah singkatan dari Global Regular Expression Print. Ini adalah utilitas yang sangat berguna untuk menelusuri sekumpulan besar file teks (misalnya, log).
Grep adalah perintah paling berguna di Linux/Unix untuk administrator sistem, pengembang, dan insinyur DevOps. Tujuan utama alat ini adalah untuk memeriksa string atau pola dalam file tertentu, atau memfilter keluaran perintah lain.
Pola yang kami sebutkan di atas, dikenal sebagai ekspresi reguler.
perintah grep mencetak baris ke terminal dengan string jika menemukan kecocokan dengan permintaan pencarian.
Ada banyak contoh penggunaan grep yang berbeda, jadi, mari kita lihat bagaimana dan kapan Anda dapat menggunakannya.
Menginstal grep di Linux
Biasanya, grep diinstal di sebagian besar sistem Linux dan bahkan wadah Docker kecil. Tetapi jika Anda belum menginstalnya di sistem Anda, Anda dapat melakukannya dengan menggunakan perintah berikut, misalnya:
apt-get updateapt-get install -y grep
contoh penggunaan grep
Di bagian artikel ini, kami akan membahas contoh paling umum penggunaan grep.
Memfilter keluaran perintah
Anda dapat menggunakan perintah grep untuk mencari dan mencetak baris apa pun dari output perintah Linux apa pun yang cocok dengan pola yang ditentukan.
Dalam contoh ini, kami akan memeriksa paket Python 3 mana yang kami miliki di sistem Ubuntu kami:
dpkg -l | grep python3
Dalam contoh ini:
dpkg -l
akan mencetak semua paket yang diinstalgrep
akan memfilterdpkg
output dan cetak hanya string, yang berisipython3
string
Dengan cara yang sama, Anda dapat menampilkan informasi model CPU, misalnya:
grep -i 'Model' /proc/cpuinfo
Mencari string di dalam file
Dalam contoh ini, perintah grep akan mencari string “root” di file ‘/etc/passwd’ dan mencetaknya jika string telah ditemukan.
Biasanya, kami menggunakan perintah ini untuk memeriksa apakah sistem memiliki akun pengguna dengan nama tertentu (contoh root in out):
grep root /etc/passwd
Menelusuri banyak file
Untuk mengetahui string dalam beberapa file sekaligus, gunakan perintah grep dan tentukan nama file dalam satu baris. Anda dapat menggunakan ekspresi reguler untuk menelusuri file dengan mask.
Mari unduh Apache access.log yang dapat diakses publik:
mkdir -p /var/log/httpd
cd /var/log/httpd
wget http://www.almhuette-raith.at/apache-log/access.log
Sekarang, mari kita bagi file ini menjadi beberapa file dengan 10.000 baris dalam file:
Sekarang, kita dapat mencari melalui file untuk 500 HTTP server error:
grep ' 500 ' xac xad
Untuk mencari di semua file dalam direktori kerja saat ini, gunakan *
setelah pola.
Pada contoh di bawah ini, perintah grep akan mencari 500 kesalahan server di semua file:
grep ' 500 ' *
Pencarian seluruh kata
Dengan -w
opsi dalam perintah grep, Anda dapat mencari file yang berisi pola kata:
grep -w 'Windows XP' *
Penelusuran tidak peka huruf besar/kecil
perintah grep cukup pintar untuk memungkinkan kita melakukan pencarian terlepas dari sensitivitas huruf besar/kecil dari pola pencarian.
Untuk melakukan itu, kita perlu menggunakan -i
sebagai argumen.
Berikut adalah contoh yang sama, tetapi sekarang kami melakukan pemfilteran yang tidak peka huruf besar/kecil:
grep -i -w 'windows xp' *
Berkas keluaran yang berisi pola penelusuran
Anda dapat menggunakan -l
opsi untuk menampilkan semua nama file yang berisi pola yang dicari:
grep -l -i -w 'windows xp' *
Hitung kecocokan per file
Jika Anda ingin mengetahui berapa kali pola Anda cocok di semua file, tambahkan -c
pilihan:
grep -c -i -w 'windows xp' *
Jumlah baris sebelum pola yang dicari
Untuk melihat baris dalam file sebelum pola pencarian, tambahkan -B
argumen diikuti dengan jumlah angka yang ingin Anda ambil dari file:
grep -B 3 -i -w 'windows xp' xaf
Jumlah baris setelah pola yang dicari
Demikian pula, Anda dapat menggunakan -A
argumen untuk menentukan jumlah baris yang akan dicetak setelah pola yang dicari:
grep -A 3 -i -w 'windows xp' xaf
Cetak nomor baris untuk pencocokan pola pencarian
Untuk melihat nomor baris dari pola pencarian yang ditemukan, Anda dapat menggunakan -n
argumen:
grep -n -i -w 'windows xp' xaf
Mencocokkan awal string
Dalam contoh berikut, kami akan menggunakan perintah grep untuk menemukan semua permintaan yang berasal dari alamat IP tertentu.
Semua baris yang dicari harus dimulai dari 5.34.180.192
istilah.
grep "^5.34.180.192" xaf
Mencocokkan akhir string
Tambahkan $
ke akhir pola untuk menemukan garis yang diakhiri dengan string yang dicari:
grep "Chrome/62\" \"-\"$" xaf
Segera setelah string pencarian kami berisi "
simbol, kami menghindarinya dengan \
.
Penelusuran beberapa pola
Kita dapat menggunakan grep untuk mencari beberapa pola sekaligus. Tambahkan -e
argumen sebelum setiap pola pencarian:
grep -e "Chrome/62\" \"-\"$" -e "15/Mar/2021:08:35:23" xaf
Di sini, kami mencari semua string dalam file yang diakhiri dengan Chrome/62" "-"
DAN berisi tanggal dan waktu tertentu 15/Mar/2021:08:35:23
.
Mengubah warna keluaran
Karena keluaran berwarna meningkatkan keterbacaan, Anda dapat mengubahnya ke warna favorit Anda dengan menyetel GREP_COLOR
variabel lingkungan:
GREP_COLOR='1;35' grep --color=always 'admin' /etc/passwd
Anda dapat memperoleh informasi lebih lanjut tentang variabel GREP_COLOR di dokumentasi grep resmi.
Ringkasan
Perintah grep sangat berguna untuk memfilter konten file teks atau hasil keluaran perintah. Dalam artikel ini, kami telah membahas perintah grep yang paling umum digunakan, yang akan menyederhanakan pengalaman shell Anda.
Kami harap artikel ini bermanfaat untuk Anda. Jika demikian, tolong bantu kami untuk menyebarkannya ke seluruh dunia.