Tiện ích để tìm kiếm nội dung tập tin, mở nó và đi đến dòng có liên quan


0

Tôi đang tìm kiếm một công cụ cung cấp một chuỗi tìm kiếm và một số tệp được đặt, sẽ tìm kiếm mọi chuỗi trong số chúng cho chuỗi đã nói và nếu tìm thấy nó, hãy mở tệp và đi đến dòng đó.

Có lẽ điều này có thể được giải thích tốt hơn với đoạn trích sau

search() {
  for file in $(find . -type f); do
    contains=$(cat "${file}" | grep -n "$1")
    [[ -n "${contains}" ]] && echo "${file}"
  done
}

Đây là một phiên bản đơn giản hóa - nó sẽ chỉ in tên tệp của các tệp phù hợp và tìm kiếm mọi tệp trong thư mục hiện tại, nhưng nó hoạt động. Chúng ta có thể mở rộng nó và đi đến dòng có liên quan bằng cách đặt một cái gì đó bên trong điều kiện như

line=$(echo "${contains}" | sed -E 's/^(\d*):.*/\1/')
vim -c "${line}" "${file}"

Nhưng điều đó có những sai sót lớn, đặc biệt là khi tìm kiếm mã.

Có một công cụ để thực hiện nhiệm vụ này?


Plugin của Vim cho Ack , có lẽ?
Cristian Ciupitu

Điều đó rất phù hợp với hóa đơn, vâng. Cảm ơn bạn. Bạn có muốn thêm nó làm câu trả lời, để tôi có thể chấp nhận nó không?
dùng137369

Câu trả lời:


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.