Untuk menggunakan grep
dua baris yang berbeda, cari kedua pola
$ grep -e sweet -e lemon file_type
This is a sweet
lemon.
Atau gunakan pergantian
$ grep -E 'sweet|lemon' file_type
This is a sweet
lemon.
Untuk mendapatkan baris berikutnya setelah suatu pola, Anda bisa menggunakan opsi konteks
$ grep -A1 sweet file_type
This is a sweet
lemon.
Tetapi jika Anda mencari secara eksplisit untuk pola multiline, itu karena sulit grep
berpikir dalam garis ... . Anda .*
akan menangkap segalanya antara "manis" dan "lemon" di telepon . Kita bisa mendapatkan "lemon" pada baris berikutnya dengan -P
menggunakan \n
untuk mencocokkan baris baru dan dengan mengatakan grep
file tersebut dipisahkan dengan -z
:
$ grep -zPo 'This is a sweet\nlemon' file_type
This is a sweet
lemon.
Catatan:
-E
Gunakan ekspresi reguler yang diperluas (untuk menggunakan |
karakter untuk pergantian tanpa perlu menghindarinya)
-An
Cetak garis tambahan setelah pola, di mana n adalah jumlah garis trailing untuk dicetak
-P
Gunakan ekspresi reguler gaya perl ("eksperimental" dalam grep
- instal pcregrep
sebagai gantinya untuk dukungan perl regex yang lebih baik)
-z
Gunakan karakter nol sebagai pemisah (hanya berpura-pura dalam kasus ini, tetapi grep
akan mengambil kata kami untuk itu)
-o
hanya cetak bagian yang cocok
grep -zP
perintah akan bekerja dalam kasus khusus ini (file yang terdiri dari tepat dua baris) secara umum akan menganggap file biasa yang dipisahkan baris baru sebagai satu baris, sehingga membuang seluruh isi file (jika ada kecocokan di suatu tempat) atau tidak sama sekali; biasanya bukan itu yang digunakan oranggrep
.