Ekspresi reguler datang dalam berbagai rasa. Yang Anda perlihatkan adalah ekspresi reguler Perl-like (PCRE, "Perl Compatible Regular Expression").
grep
melakukan ekspresi reguler POSIX. Ini adalah ekspresi reguler dasar (BRE) dan ekspresi reguler yang diperluas (ERE, jika grep
digunakan dengan -E
opsi). Lihat manual untuk re_format
atau regex
manual manual serupa apa pun yang dirujuk manual Anda grep
pada sistem Anda, atau teks standar POSIX yang baru saja saya tautkan.
Jika Anda menggunakan GNU grep
, Anda akan dapat menggunakan ekspresi reguler seperti Perl jika Anda menggunakan opsi spesifik grep
GNU .grep
-P
Perhatikan juga bahwa grep
mengembalikan garis secara default, bukan substring dari garis. Sekali lagi, dengan GNU grep
(dan beberapa grep
implementasi lainnya ), Anda dapat menggunakan -o
opsi untuk mendapatkan hanya bit yang cocok dengan ekspresi yang diberikan dari setiap baris.
Perhatikan bahwa kedua -P
dan -o
non-standar ekstensi POSIX spesifikasigrep
.
Jika Anda tidak menggunakan GNU grep
, maka Anda dapat menggunakan sed
sebagai gantinya untuk mendapatkan bit antara string prefix
dan akhir baris:
sed -n 's/.*prefix\(.*\)/\1/p' file
Apa yang dilakukan adalah hanya mencetak garis yang sed
mengatur untuk menerapkan substitusi yang diberikan. Substitusi akan mengganti seluruh baris yang cocok dengan ekspresi (yang merupakan BRE), dengan potongan yang terjadi setelah string prefix
.
Perhatikan bahwa jika ada beberapa contoh prefix
pada sebuah baris, sed
variasi akan mengembalikan string setelah yang terakhir , sedangkan grep
variasi GNU akan mengembalikan string setelah yang pertama (yang akan mencakup contoh lain dari prefix
).
The sed
solusi akan portabel untuk semua sistem Unix-seperti.