มันเป็นไปได้โดยใช้ grep เพื่อค้นหากรณีของJohn Smith
แต่ไม่รวมกรณีของMr John Smith
?
มันเป็นไปได้โดยใช้ grep เพื่อค้นหากรณีของJohn Smith
แต่ไม่รวมกรณีของMr John Smith
?
คำตอบ:
สิ่งนี้สามารถแก้ไขได้โดยใช้นิพจน์ทั่วไปที่มีค่าลบเชิงลบ (ซึ่งได้รับการสนับสนุนการทดลองgrep
ตามที่ระบุไว้โดยความคิดเห็นจากการจัดการ):
$ grep -P '(?<!Mr )John Smith' file
เนื่องจากการสนับสนุนเป็นเพียงการทดลองคุณอาจต้องการใช้perl
แทน:
$ perl -nle 'print if /(?<!Mr )John Smith/' file
คุณสามารถดำเนินการ
command | grep 'John Smith' | grep -v 'Mr John Smith'
John Smith Mr John Smith John Smith
หากต้องการใช้นิพจน์ทั่วไปให้ใช้ ^ และ $
grep "^John Smith$"
^ คือการแข่งขันจากจุดเริ่มต้น $ คือการแข่งขันจากจุดสิ้นสุด
ไวยากรณ์จะแตกต่างกันไปขึ้นอยู่กับสิ่งที่คุณกำลังค้นหาในไฟล์อะไร
คุณสามารถใช้นิพจน์ทั่วไปด้วย sed, grep, awk ....
ตัวอย่าง
bodhi@Ubuntu:~ cat file
Mr John Smith
John Smith
John
Smith
bodhi@Ubuntu:~ grep "^John Smith$" file
John Smith
echo $string | grep -P '(?<!Mr )John Smith'
: