Jika grep Anda tidak mendukung -P atau --perl-regexp, dan Anda dapat menginstal grep yang mendukung PCRE, misalnya "pcregrep", maka grep tidak memerlukan opsi baris perintah seperti GNU grep untuk menerima reguler yang kompatibel dengan Perl ekspresi, Anda baru saja lari
pcregrep "Ui\.(?!Line)"
Anda tidak memerlukan grup bersarang lain untuk "Line" seperti dalam contoh "Ui. (?! (Line))" - grup luar sudah cukup, seperti yang saya tunjukkan di atas.
Izinkan saya memberi Anda contoh lain untuk melihat pernyataan negatif: ketika Anda memiliki daftar baris, dikembalikan oleh "ipset", setiap baris menunjukkan jumlah paket di tengah baris, dan Anda tidak memerlukan baris dengan paket nol, Anda hanya Lari:
ipset list | pcregrep "packets(?! 0 )"
Jika Anda menyukai ekspresi reguler yang kompatibel dengan perl dan memiliki perl tetapi tidak memiliki pcregrep atau grep Anda tidak mendukung --perl-regexp, Anda dapat menggunakan skrip perl satu baris yang bekerja dengan cara yang sama seperti grep:
perl -e "while (<>) {if (/Ui\.(?!Lines)/){print;};}"
Perl menerima stdin dengan cara yang sama seperti grep, misalnya
ipset list | perl -e "while (<>) {if (/packets(?! 0 )/){print;};}"