Cách tạo lệnh 'ack' in tên tệp đã tìm thấy kết quả trên mỗi dòng


1

Theo mặc định ack lệnh in đầu ra theo cách sau

ack --jsp '</div>'

a.jsp
5:</span></div>
10:</table></div>
b.jsp
3:</div><div>xyz
8:</div><a>

Có cách nào để đưa ra kết quả theo cách sau không?

<filename>:<linenum>:<matchedtext>   

a.jsp:5:</div>
a.jsp:10:</div>
b.jsp:3:</div>
b.jsp:8:</div>

Mặc dù có --output=expr để khớp đầu ra dựa trên nhóm chụp regex Tôi không chắc có cách nào để lấy tên của tệp đã khớp văn bản cùng với số dòng không

ack --jsp -o -h --output=':$1:$2' '(</(div)>)'

:</div>:div
:</div>:div
:</div>:div
:</div>:div

Nếu không thể với ack, có cách nào khác để làm điều đó không?

Câu trả lời:


2

Ok quét nhanh qua nguồn ack Tôi tìm thấy tùy chọn dòng lệnh để có kết quả bắt buộc

ack --jsp --nogroup -o '(</(div)>)'


a.jsp:5:</div>
a.jsp:10:</div>
b.jsp:3:</div>
b.jsp:8:</div>

hoặc là

ack --jsp --nogroup --output='$2' '(</(div)>)'


a.jsp:5:div
a.jsp:10:div
b.jsp:3:div
b.jsp:8:div
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.