มีคำสั่งใน Mac OS X ที่สามารถทำการค้นหาหลายบรรทัดได้หรือไม่


12

ฉันต้องการทำการค้นหา regex แบบง่าย ๆ ซ้ำ ๆ ผ่านไดเรกทอรีที่ไม่ จำกัด บรรทัดเดียว

ฉันลอง grep และ ack แต่ดูเหมือนจะไม่สนับสนุนสิ่งนี้

ฉันรู้ว่ามันไม่ควรมีราคาแพงเกินไป (ในกรณีของฉัน) เพราะโปรแกรมแก้ไขข้อความที่ฉันเลือก ( Sublime Text ) สามารถทำได้ดี

ฉันแค่มองหาเวอร์ชั่นบรรทัดคำสั่งง่ายๆ Google เปิดใช้งานpcregrepแล้ว แต่ฉันหา Mac ไม่เจอ ฉันแค่มองไม่ถูกที่ใช่ไหม?


1
การยกตัวอย่างสิ่งที่คุณกำลังมองหาจะเป็นประโยชน์ และgrepบริบทช่วยให้คุณค้นหาสิ่งที่คุณต้องการ ( -C1) หรือไม่
mbb

คำตอบ:



1

คุณไม่ได้พูดอย่างที่คุณต้องการดังนั้นฉันจะจินตนาการถึงงานที่จะค้นหาว่าไฟล์มี 112 ตามด้วย 223 โดยไม่สนใจบรรทัดใหม่หรือไม่

awkวิธีแก้ปัญหาที่วางแผนไว้เล็กน้อย:

awk -vRS='' '/112.*223/ { print "found it"; exit }' file.in

RSตัวแปรมีบันทึกคั่น โดยการตั้งค่าให้เป็นสตริงว่างไฟล์ทั้งหมดจะถูกอ่านเป็นหนึ่งระเบียน

นี่อาจจะเป็นความจำที่ไม่มีประสิทธิภาพในไฟล์ขนาดใหญ่

โดยวิธีการที่ฉันทำใน OpenBSD แต่ OS X awk ควรทำงานในลักษณะเดียวกัน


ฉันใช้ OS X 10.11.2 แล้วรับ "awk: ตัวเลือก -v ที่ไม่ถูกต้อง"
HaggleLad

ใน OS X คุณต้องการพื้นที่ระหว่างและv RSieawk -v RS='' '/112.*223/ { print "found it"; exit }' file.in
Neil

0

"pcregrep" สามารถหมายถึงเสถียรภาพเก่าและใหม่pcregrep pcre2grepทั้งสองจะให้บริการโดยโครงการ PCRE pcre.orgที่

Mac Portsจัดเตรียมอดีตเป็นส่วนหนึ่งของพอร์ตpcre(เสถียรที่เวอร์ชัน 8.40) และพอร์ตหลังเป็นส่วนหนึ่งของพอร์ตpcre2(เวอร์ชันปัจจุบัน 10.22) ติดตั้งผ่าน:

% sudo port install pcre2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.