Ack ค้นหาสตริงตามตัวอักษร [ปิด]


15

ฉันเบื่อที่จะต้องหลบหนีสิ่งต่าง ๆ เมื่อฉันต้องการค้นหาส่วนหนึ่งของแท็ก html

ฉันจะค้นหาสิ่งที่ฉันพิมพ์ได้โดยไม่ต้องหลบหนีจากสิ่งต่างๆได้อย่างไร

เช่น

ack-grep 'console.log(foo'

ฉันเข้าใจ:

Unmatched ( in regex; marked by <-- HERE in m/console.log( <-- HERE par/

ใช้เปลือกที่แตกต่างกันอย่างไร ใส่ไว้ในเครื่องหมายคำพูด? วางสตริงการค้นหาของคุณในไฟล์ฉันสงสัยว่า ack-grep สามารถรับสตริงจากไฟล์ได้ บางทีคุณอาจจะสามารถค้นหาผ่าน stdin ได้ด้วยซ้ำ
Zoredache

@Zoredache ฉันเพิ่มตัวอย่างที่ดีกว่า .. ฉันไม่ต้องการหนี(.. และคุณหมายถึงอะไรโดยเชลล์ที่ดีกว่า?
ผู้ทดสอบ

ฉันหมายถึง chracters ทั้งหมดที่คุณกำลังบ่นเกี่ยวกับได้รับการจัดการโดยเปลือกของคุณ (bash / zsh / อะไรก็ตาม) ปัญหาไม่เกี่ยวข้องกับเครื่องมือ ปัญหาคือเชลล์ไม่ได้ส่งสิ่งที่คุณพิมพ์
Zoredache

อ่าฉันคิดว่าฉันเจอแล้ว .. -Q ใช้มันอย่างแท้จริง ..
ผู้ทดสอบ

คำตอบ:


18

คุณต้องหนีจาก Regex

ack 'console\.log\(foo'

(คุณควรหลีกเลี่ยง.เพื่อไม่ให้ตรงกับ "consoleflog" เพราะ.ตรงกับอักขระตัวเดียว)

และถ้าคุณไม่อยากทำอย่างนั้นให้ทำสิ่งนี้เพื่ออ้างถึงตัวละครทุกตัวโดยอัตโนมัติ

ack -Q 'console.log(foo'

2
\ Q ไม่ทำงานบนเซิร์ฟเวอร์ของฉัน ack '\Qconsole.log(foo' ack: Invalid regex '\Qconsole.log(foo': Unmatched ( in regex; marked by <-- HERE in m/\Qconsole.log( <-- HERE foo/
Sébastien

ฉันเข้าใจผิดเกี่ยวกับ\Qตัวอย่างและลบมันออกจากคำตอบ ขอบคุณ @ Sébastien
Andy Lester
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.