perintah dasar linux debian (mkdir,ls,cd,nano,pwd,clear ) #2 -100%manusia_original
Daftar Isi:
- Sintaks Perintah Grep
- Cara menggunakan
grep
untuk Mencari String di File - Balikkan Kecocokan (Kecualikan)
- Cara menggunakan Grep untuk Mencari String di Command Output
- Pencarian Rekursif
- Hanya Tampilkan Nama File
- Pencarian Tidak Peka Huruf Besar Kecil
- Cari Kata Lengkap
- Tampilkan Nomor Baris
- Hitung Kecocokan
- Cari Banyak Strings (Pola)
- Mode Diam
- Ekspresi Reguler Dasar
- Ekspresi Reguler Diperpanjang
- Print Lines Before a Match
- Print Lines After a Match
- Kesimpulan
The
grep
Perintah yang merupakan singkatan dari “global yang cetak ekspresi reguler” adalah salah satu perintah yang paling kuat dan umum digunakan dalam Linux.
Grep mencari satu atau lebih file input untuk baris yang cocok dengan pola yang diberikan dan menulis setiap baris yang cocok dengan output standar. Jika tidak ada file yang ditentukan,
grep
membaca dari input standar, yang biasanya output dari perintah lain.
Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menggunakan perintah
grep
melalui contoh-contoh praktis, dan penjelasan rinci tentang opsi
grep
GNU yang paling umum.
Sintaks Perintah Grep
Sebelum membahas cara menggunakan perintah
grep
, mari kita mulai dengan meninjau sintaks dasar.
Ekspresi utilitas
grep
mengambil bentuk berikut:
grep PATTERN
Item dalam tanda kurung adalah opsional.
-
OPTIONS
- Nol atau lebih banyak opsi. Grep menyediakan sejumlah opsi yang mengontrol perilakunya.PATTERN
- Pola pencarian.FILE
- Nol atau lebih banyak nama file input.
Untuk dapat mencari file, pengguna yang menjalankan perintah harus memiliki akses baca ke file.
Cara menggunakan
grep
untuk Mencari String di File
Penggunaan paling mendasar dari perintah
grep
adalah untuk mencari string (teks) dalam file.
Misalnya, untuk menampilkan baris dari file
/etc/passwd
berisi string
bash
Anda dapat menggunakan perintah berikut:
grep bash /etc/passwd
Outputnya akan terlihat seperti ini:
root:x:0:0:root:/root:/bin/bash linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
Jika string menyertakan spasi, Anda harus melampirkannya dalam tanda kutip tunggal atau ganda:
grep "Gnome Display Manager" /etc/passwd
Balikkan Kecocokan (Kecualikan)
Untuk menampilkan baris yang tidak cocok dengan pola, gunakan
-v
(atau
--invert-match
) pilihan.
Misalnya untuk menampilkan baris dari file
/etc/passwd
yang tidak mengandung string
nologin
Anda dapat menggunakan perintah berikut:
grep -v nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash colord:x:124:124::/var/lib/colord:/bin/false git:x:994:994:git daemon user:/:/usr/bin/git-shell linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
Cara menggunakan Grep untuk Mencari String di Command Output
Alih-alih menentukan file input, Anda dapat mengirim output dari perintah lain ke
grep
, dan kemudian hanya menampilkan garis yang cocok dengan pola yang diberikan.
Misalnya, untuk mengetahui proses yang berjalan pada sistem Anda sebagai pengguna
www-data
Anda dapat menggunakan berikut
ps
perintah:
ps -ef | grep www-data
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
Anda juga dapat rantai beberapa pipa di perintah. Seperti yang Anda lihat di output di atas ada juga baris yang berisi proses
grep
. Jika Anda tidak ingin baris itu ditampilkan, berikan output ke instance
grep
lain seperti yang ditunjukkan di bawah ini.
ps -ef | grep www-data | grep -v grep
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
Pencarian Rekursif
Untuk mencari pola secara rekursif, gunakan opsi
-r
(atau
--recursive
). Ini akan mencari melalui semua file di direktori yang ditentukan, melewatkan symlink yang ditemui secara rekursif. Untuk mengikuti semua tautan simbolis, gunakan opsi
-R
(atau
--dereference-recursive
).
Dalam contoh berikut ini kami sedang mencari string
linuxize.com
di semua file di dalam direktori
/etc
:
grep -r linuxize.com /etc
Perintah akan mencetak garis yang cocok diawali oleh path lengkap ke file.
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com;
Jika sebaliknya
-r
Anda menggunakan opsi
-R
grep
akan mengikuti semua tautan simbolik:
grep -R linuxize.com /etc
Perhatikan baris terakhir dari output. Baris itu tidak dicetak dalam contoh di atas karena file di dalam direktori yang
sites-enabled
Nginx adalah symlink ke file konfigurasi di dalam direktori yang
sites-available
di
sites-available
.
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com; /etc/nginx/sites-enabled/linuxize.com: server_name linuxize.com www.linuxize.com;
Hanya Tampilkan Nama File
Untuk menekan output
grep
default dan hanya mencetak nama file yang berisi pola yang cocok, Anda dapat menggunakan opsi
-l
(atau
--files-with-matches
).
Sebagai contoh untuk mencari semua file yang diakhiri dengan
.conf
di direktori kerja saat ini dan hanya mencetak nama-nama file yang berisi string tipe
linuxize.com
:
grep -l linuxize.com *.conf
Outputnya akan terlihat seperti ini:
tmux.conf haproxy.conf
Opsi
-l
biasanya digunakan dalam kombinasi dengan opsi rekursif
-R
:
Pencarian Tidak Peka Huruf Besar Kecil
Secara default, perintah
grep
peka huruf besar-kecil. Ini berarti bahwa karakter huruf besar dan huruf kecil diperlakukan sebagai berbeda.
Untuk mengabaikan case saat mencari, gunakan opsi
-i
(atau
--ignore-case
).
Sebagai contoh, ketika mencari
Zebra
tanpa opsi apapun, perintah berikut akan tidak menunjukkan output apapun yaitu ada garis-garis yang cocok:
grep Zebra /usr/share/words
Tetapi jika Anda melakukan kasus sensitif pencarian menggunakan
-i
pilihan, itu akan cocok dengan baik huruf atas dan bawah:
grep -i Zebra /usr/share/words
Menentukan "Zebra" akan cocok dengan "zebra", "ZEbrA" atau kombinasi huruf besar dan kecil lainnya untuk string itu.
Cari Kata Lengkap
Saat mencari "gnu",
grep
juga akan mencetak baris di mana "gnu" disematkan dalam kata-kata yang lebih besar, seperti "cygnus" atau "magnum".
grep gnu /usr/share/words
cygnus gnu interregnum lgnu9d lignum magnum magnuson sphagnum wingnut
Untuk mengembalikan hanya baris-baris di mana string yang ditentukan adalah keseluruhan kata (tertutup oleh karakter non-kata), gunakan opsi
-w
(atau
--word-regexp
).
az
,
AZ
dan
0-9
) dan garis bawah (
_
). Semua karakter lain dianggap sebagai karakter non-kata.
grep -w gnu /usr/share/words
Tampilkan Nomor Baris
Untuk menunjukkan jumlah baris yang berisi string yang cocok dengan pola, gunakan opsi
-n
(atau
--line-number
). Bila menggunakan pilihan ini,
grep
akan mencetak pertandingan ke output standar diawali dengan nomor baris itu ditemukan di.
Sebagai contoh untuk menampilkan baris-baris dari file
/etc/services
berisi string
bash
diawali dengan nomor baris yang cocok, Anda dapat menggunakan perintah berikut:
grep -n 10000 /etc/services
Output di bawah ini menunjukkan kepada kita bahwa kecocokan ditemukan pada baris 10423 dan 10424.
10423:ndmp 10000/tcp 10424:ndmp 10000/udp
Hitung Kecocokan
Untuk mencetak hitungan garis yang cocok dengan output standar, gunakan opsi
-c
(atau
--count
).
Pada contoh di bawah, kita menghitung jumlah rekening yang telah
/usr/bin/zsh
sebagai shell.
grep -c '/usr/bin/zsh' /etc/passwd
Cari Banyak Strings (Pola)
Dua atau lebih pola pencarian dapat digabungkan menggunakan operator ATAU
|
.
Secara default,
grep
menafsirkan pola sebagai ekspresi reguler dasar di mana meta-karakter seperti
|
kehilangan makna khusus mereka, dan versi backslashed mereka harus digunakan.
Dalam contoh di bawah ini kami sedang mencari semua kejadian dari kata-kata
fatal
,
error
, dan
critical
dalam Nginx file error log:
grep 'fatal\|error\|critical' /var/log/nginx/error.log
grep -E 'fatal|error|critical' /var/log/nginx/error.log
Mode Diam
The
-q
(atau
--quiet
) mengatakan
grep
untuk tidak menulis apa-apa ke terminal (standar output). Jika kecocokan ditemukan, perintah akan keluar dengan status
0
. Ini berguna ketika menggunakan skrip shell
grep
di mana Anda ingin memeriksa apakah file berisi string dan melakukan tindakan tertentu tergantung pada hasilnya.
Berikut adalah contoh penggunaan
grep
dalam mode senyap sebagai perintah tes dalam pernyataan
if
:
if grep -q PATTERN filename then echo pattern found else echo pattern not found fi
Ekspresi Reguler Dasar
GNU Grep memiliki dua set fitur ekspresi reguler, Basic dan Extended. Secara default,
grep
menginterpretasikan pola sebagai ekspresi reguler dasar.
Ketika digunakan dalam mode dasar ekspresi reguler, semua karakter lain kecuali meta-karakter, sebenarnya ekspresi reguler yang cocok sendiri. Di bawah ini adalah daftar karakter meta yang paling umum digunakan:
-
Gunakan simbol
^
(tanda sisipan) untuk mencocokkan ekspresi pada awal baris. Pada contoh berikut, string^kangaroo
akan cocok hanya jika terjadi di bagian paling awal baris.grep "^kangaroo" file.txt
Gunakan simbol
$
(dolar) untuk mencocokkan ekspresi di akhir baris. Pada contoh berikut, stringkangaroo$
akan cocok hanya jika terjadi pada akhir baris.grep "kangaroo$" file.txt
Gunakan
.
simbol (periode) untuk mencocokkan karakter tunggal apa pun. Misalnya, untuk mencocokkan apa pun yang dimulai dengankan
kemudian memiliki dua karakter dan diakhiri dengan stringroo
, Anda dapat menggunakan pola berikut:grep "kan..roo" file.txt
Menggunakan
accept
atau “accent
, Anda dapat menggunakan pola berikut:grep "accet" file.txt
Menggunakan
co(any_letter_except_l)a
, seperticoca
,cobalt
dan sebagainya, tetapi tidak akan cocok dengan garis yang mengandungcola
,grep "coa" file.txt
Untuk menghindari makna khusus dari karakter berikutnya, gunakan simbol
\
(garis miring terbalik).
Ekspresi Reguler Diperpanjang
Untuk menginterpretasikan pola sebagai ekspresi reguler diperpanjang, menggunakan
-E
(atau
--extended-regexp
) pilihan. Ekspresi reguler yang diperluas mencakup semua meta-karakter dasar, bersama dengan meta-karakter tambahan untuk membuat pola pencarian yang lebih kompleks dan kuat. Di bawah ini adalah beberapa contoh:
-
Cocokkan dan ekstrak semua alamat email dari file yang diberikan:
grep -E -o "\b+@+\.{2, 6}\b" file.txt
Cocokkan dan ekstrak semua alamat IP yang valid dari file yang diberikan:
grep -E -o '(25|2|??)\.(25|2|??)\.(25|2|??)\.(25|2|??)' file.txt
Opsi
-o
digunakan untuk mencetak hanya string yang cocok.
Print Lines Before a Match
Untuk mencetak sejumlah garis tertentu sebelum mencocokkan garis, gunakan opsi
-B
(atau -
--before-context
).
Misalnya, untuk menampilkan lima baris konteks terkemuka sebelum mencocokkan baris, Anda akan menggunakan perintah berikut:
Print Lines After a Match
Untuk mencetak sejumlah garis tertentu setelah garis yang cocok, gunakan opsi
-A
(atau -
--after-context
).
Misalnya untuk menampilkan lima baris dari konteks setelah garis yang cocok, Anda akan menggunakan perintah berikut:
Kesimpulan
Perintah
grep
memungkinkan Anda untuk mencari pola di dalam file. Jika cocok jika ditemukan, grep akan mencetak garis yang berisi pola yang ditentukan.
Ada banyak lagi untuk dipelajari tentang Grep di halaman Panduan Pengguna Grep.
terminal grepCari Teks dalam File yang Dipindai Dengan Recollect Desktop
Program ini pergi ke tempat program pencarian lain tidak: e-mail, PDF, dipindai dokumen, dan banyak lagi.
Temukan Info di File Teks File Indeks Cari Kata-kata Lite
Indeks Pencarian File Kata-kata Lite seperti Google Anda sendiri ... karena betapapun banyak file teks
Cari dan Ganti Teks dalam Banyak File secara Massal di Windows
Cari dan Ganti Alat akan membantu Anda menemukan dan mengganti teks dalam beberapa file dalam jumlah besar. Cukup masukkan teks dan tekan Ganti untuk mengganti teks secara instan.