หาก grep ของคุณไม่รองรับ -P หรือ --perl-regexp และคุณสามารถติดตั้ง grep ที่เปิดใช้งาน PCRE เช่น "pcregrep" ได้มากกว่าที่จะไม่ต้องใช้ตัวเลือกบรรทัดคำสั่งเช่น GNU grep เพื่อยอมรับ Perl ที่เข้ากันได้กับปกติ นิพจน์คุณเพียงแค่เรียกใช้
pcregrep "Ui\.(?!Line)"
คุณไม่จำเป็นต้องมีกลุ่มที่ซ้อนกันสำหรับ "Line" ดังในตัวอย่างของคุณ "Ui. (?! (Line))" - กลุ่มภายนอกก็เพียงพอแล้วดังที่แสดงไว้ด้านบน
ขอยกตัวอย่างอีกตัวอย่างหนึ่งของการมองการยืนยันเชิงลบ: เมื่อคุณมีรายการบรรทัดที่ส่งกลับโดย "ipset" แต่ละบรรทัดจะแสดงจำนวนแพ็กเก็ตที่อยู่ตรงกลางบรรทัดและคุณไม่จำเป็นต้องมีบรรทัดที่มีแพ็กเก็ตเป็นศูนย์คุณเพียงแค่ วิ่ง:
ipset list | pcregrep "packets(?! 0 )"
หากคุณชอบนิพจน์ทั่วไปที่เข้ากันได้กับ perl และมี perl แต่ไม่มี pcregrep หรือ grep ของคุณไม่รองรับ --perl-regexp คุณสามารถใช้สคริปต์ perl แบบบรรทัดเดียวที่ทำงานในลักษณะเดียวกันเช่น grep:
perl -e "while (<>) {if (/Ui\.(?!Lines)/){print;};}"
Perl ยอมรับ stdin ในลักษณะเดียวกับ grep เช่น
ipset list | perl -e "while (<>) {if (/packets(?! 0 )/){print;};}"