Perintah grep, dalam bentuknya yang paling dasar, adalah alat pencarian. Tidak seperti find atau locate, ini tidak terbatas pada menemukan nama file; itu paling sering digunakan untuk mencari isi file untuk string teks tertentu. Sebagai output, grep menampilkan setiap baris penuh file tempat pola pencarian Anda ditemukan. Dengan cara ini, Anda dapat menggunakan grep untuk memproses file teks dan membaca konten yang paling relevan bagi Anda. Misalnya, Anda mungkin ingin mengaudit peristiwa login pengguna dengan melihat log akses. Alih-alih membaca seluruh log atau menelusuri istilah penelusuran di editor teks, Anda cukup mencetak semua baris yang relevan ke layar dengan perintah grep.
Sintaks
Sintaks dari perintah grep adalah:
# grep [options] {search pattern} {file names}
Menggunakan grep untuk menemukan file
Selain mencari konten file, Anda dapat menggunakan grep untuk mencari direktori untuk menemukan file tertentu. ls -l | perintah grep audit mengembalikan daftar panjang file apa pun di direktori saat ini yang namanya berisi "audit".
Jika Anda ingin membalikkan pencarian (garis keluaran yang tidak sesuai dengan pola), gunakan parameter -v:
$ grep -v t file1 one four five $
Jika Anda perlu menemukan nomor baris tempat ditemukannya pola yang cocok, gunakan parameter -n:
$ grep -n t file1 2:two 3:three $
Jika Anda hanya perlu melihat hitungan berapa banyak baris yang berisi pola yang cocok, gunakan parameter -c:
$ grep -c t file1 2 $
Jika Anda perlu menentukan lebih dari satu pola yang cocok, gunakan parameter -e untuk menentukan setiap pola individual:
$ grep -e t -e f file1 two three four five $
Jika Anda menemukan kesalahan di bawah ini saat menjalankan perintah grep:
grep: command not found
Anda dapat mencoba menginstal paket di bawah ini sesuai dengan pilihan distribusi Anda:
Distribusi OS | Perintah |
---|---|
OS X | brew install grep |
Debian | apt-get install grep |
Ubuntu | apt-get install grep |
Alpin | apk tambahkan grep |
Linux Arch | pacman -S grep |
Kali Linux | apt-get install grep |
CentOS | yum install grep |
Fedora | dnf instal grep |
Raspbian | apt-get install grep |
Contoh Perintah grep
1. Untuk menafsirkan POLA sebagai ekspresi reguler yang diperluas:
# grep --extended-regexp PATTERN # grep -E PATTERN
2. Untuk menafsirkan POLA sebagai daftar string tetap:
# grep -F PATTERN # grep --fixed-strings PATTERN
3. Untuk menafsirkan POLA sebagai ekspresi reguler dasar:
# grep -G PATTERN # grep --basic-regexp PATTERN
4. Untuk menginterpretasikan POLA sebagai ekspresi reguler Perl:
# grep -P PATTERN # grep --perl-regexp PATTERN
5. Untuk menggunakan PATTERN sebagai pola:
# grep -e PATTERN, # grep --regexp=PATTERN
6. Untuk mendapatkan pola dari FILE, satu per baris:
# grep -f FILE, --file=FILE
7. Untuk mengabaikan perbedaan huruf besar-kecil pada PATTERN dan file input:
# grep -i PATTERN # grep --ignore-case PATTERN
8. Untuk membalikkan rasa kecocokan, untuk memilih garis yang tidak cocok:
# grep -v PATTERN # grep --invert-match PATTERN
9. Untuk Memilih hanya baris yang berisi kecocokan yang membentuk seluruh kata:
# grep -w PATTERN # grep --word-regexp PATTERN
10. Untuk Memilih hanya kecocokan yang sama persis dengan seluruh baris:
# grep -x PATTERN # grep --line-regexp PATTERN
11. Untuk mengabaikan kasus:
# grep -y PATTERN
12. Untuk Menekan output normal; sebagai gantinya cetak hitungan baris yang cocok:
# grep -c PATTERN # grep --count PATTERN
13. Untuk menampilkan dalam warna:
# grep --color PATTERN
14. Untuk Menekan output normal; alih-alih cetak nama setiap file input, dari luar tidak akan diharapkan:
# grep -L # grep --files-without-match
15. Untuk Menekan keluaran normal; sebagai gantinya cetak nama setiap file input dari mana output telah dicetak:
# grep -l # grep --files-with-matches
16. Untuk Tenang; jangan menulis apa pun ke keluaran standar Keluar segera dengan status nol jika ditemukan kecocokan:
# grep -q # grep --quiet # grep --silent
17. Untuk Berhenti membaca file setelah NUM baris yang cocok:
# grep -m NUM # grep --max-count=NUM
18. Untuk Mencetak hanya bagian yang cocok (tidak kosong) dari garis yang cocok:
# grep -o PATTERN # grep --only-matching PATTERN
19. Untuk Menekan pesan kesalahan tentang file yang tidak ada atau tidak dapat dibaca:
# grep -s PATTERN # grep --no-messages PATTERN
20. Untuk Mencetak offset byte berbasis 0 dalam file input sebelum setiap baris output:
# grep -b PATTERN # grep --byte-offset PATTERN
21. Untuk Mencetak nama file untuk setiap kecocokan:
# grep -H PATTERN # grep --with-filename PATTERN
22. Untuk Menekan awalan nama file pada output:
# grep -h PATTERN # grep --no-filename PATTERN
23. Untuk Menampilkan input yang sebenarnya berasal dari input standar sebagai input yang berasal dari file LABEL:
# grep -cd PATTERN | grep --label=mysearch -H PATTERN
24. Untuk Mengawali setiap baris output dengan nomor baris berbasis 1 di dalam file inputnya:
# grep -n PATTERN # grep --line-number PATTERN
25. Untuk memastikan bahwa karakter pertama dari konten baris yang sebenarnya terletak pada perhentian tab:
# grep -T PATTERN # grep --initial-tab PATTERN
26. Untuk Melaporkan offset byte gaya Unix:
# grep -u PATTERN # grep --unix-byte-offsets PATTERN
27. Untuk Output byte nol, bukan karakter yang biasanya mengikuti nama file:
# grep -Z PATTERN # grep --null PATTERN
28. Untuk Mencetak NUM baris konteks akhir setelah baris yang cocok:
# grep -A NUM PATTERN # grep --after-context=NUM PATTERN
29. Untuk Mencetak NUM baris dari konteks awal sebelum mencocokkan baris:
# grep -B NUM PATTERN # grep --before-context=NUM PATTERN
30. Untuk Mencetak NUM baris konteks keluaran:
# grep -C NUM PATTERN # grep --context=NUM PATTERN
31. Untuk Memproses file biner seolah-olah itu teks:
# grep -a PATTERN /tmp/bin # grep -text PATTERN /tmp/bin
32. Untuk mengasumsikan bahwa file tersebut bertipe TYPE:
# grep --binary-files=TYPE PATTERN
33. Untuk Jika file input adalah perangkat, FIFO atau soket, gunakan ACTION untuk memprosesnya:
# grep -D ACTION PATTERN # grep --devices=ACTION PATTERN
34. Untuk Jika file input adalah direktori, gunakan ACTION untuk memprosesnya:
# grep -d ACTION PATTERN # grep --directories=ACTION PATTERN
35. Untuk melewati file yang nama dasarnya cocok dengan GLOB:
# grep --exclude=GLOB PATTERN
36. Untuk Melewati file yang nama dasarnya cocok dengan salah satu gumpalan nama file, baca dari FILE:
# grep --exclude-from=FILE PATTERN
37. Untuk mengecualikan direktori yang cocok dengan pola DIR dari pencarian rekursif:
# grep --exclude-dir=DIR PATTERN
38. Untuk Memproses file biner seolah-olah tidak berisi data yang cocok:
# grep -I PATTERN
39. Untuk mencari hanya file yang nama dasarnya cocok dengan GLOB:
# grep --include=GLOB
40. Untuk Membaca semua file di bawah setiap direktori, secara rekursif:
# grep -r PATTERN # grep -R PATTERN
41. Untuk Menggunakan buffering baris pada output:
# grep --line-buffered PATTERN
42. Untuk Jika memungkinkan, gunakan panggilan sistem mmap untuk membaca input, alih-alih membaca default:
# grep --mmap PATTERN
43. Untuk Memperlakukan file sebagai biner:
# grep -U /tmp/file PATTERN # grep --binary /tmp/file PATTERN
44. Untuk Memperlakukan input sebagai satu set baris:
# grep -z PATTERN # grep --null-data PATTERN
45. Untuk menampilkan bantuan:
# grep -h
46. Untuk mencetak nomor versi grep:
# grep -V