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?