2011-12-05 50 views
10

Tôi gặp sự cố khi sử dụng ack-grep với giao diện tiêu cực phía trước.Lỗi tìm kiếm lỗi & tiêu cực gây ra lỗi

Tôi đang chạy lệnh này:

ack-grep "paypal_responded(?!_at)" 

nhưng tôi nhận được lỗi:

bash: !_at: event not found 

Tôi đã thử thêm dấu xồ nguợc ở những nơi khác nhau, nhưng tôi cũng là người mới sử dụng ack & linux, vì vậy hãy đối xử với tôi như một newbie với bất kỳ hướng dẫn.

Xin cảm ơn trước.

Trả lời

16

Hãy thử ack-grep 'paypal_responded(?!_at)'

Bạn cần đơn giá để tránh bash giải thích ! như lịch sử mở rộng lệnh.

+2

Công cụ tuyệt vời. Đó là sắp xếp nó. Cảm ơn: o) – TobyG

+0

@TobyG Bạn có muốn chấp nhận câu trả lời này để câu hỏi này không còn được trả lời không? Cảm ơn! – user1251007

+0

Xin lỗi. Điều này ngày trở lại những ngày đầu của tôi ở đây đã không nhận ra tôi không chấp nhận một câu trả lời. Xong ngay. – TobyG

4

vỏ được giải thích ! ở đầu vào của bạn như là một lệnh thay:

$ ack-grep root /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
$ !ac 
ack-grep root /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
$ 

Bạn cần phải nói với vỏ mà ! không có ý nghĩa đặc biệt; có hai cách để làm điều đó:

ack-grep "paypal_responded(?\!_at)" 

ack-grep "paypal_responded\(?\!_at\)" 

hoặc

ack-grep 'paypal_responded(?!_at)' 

chuỗi đơn trích dẫn có biến đổi ít áp dụng đối với họ:

$ ack-grep "s\!" /etc/passwd 
$ ack-grep 's!' /etc/passwd 
$ 
+0

Tôi đã thử ... ack-grep "paypal_responded (? \! _ At)" .. nhưng gặp lỗi ... " ack-grep: regex không hợp lệ 'paypal_responded (? \! _ at)': Trình tự (? \ ...) không được nhận dạng trong regex; được đánh dấu bằng <- HERE bằng m/paypal_responded (? \ <- HERE! _at)/" – TobyG

+0

Sheesh, rõ ràng là đang diễn ra nhiều hơn tôi mong đợi - ví dụ đơn giản của tôi hoạt động chính xác như tôi muốn, nhưng ví dụ dài hơn với' (?! _ At) 'không thành công theo cách kinh khủng và dễ hiểu các loại hạt cố gắng để làm cho nó hoạt động. 'ack-grep" paypal_responded \ (? \! _ at \) "' hoạt động tốt .... nhưng tôi không thể giải thích nó. – sarnold

Các vấn đề liên quan