Tôi đang cố gắng sử dụng một tệp chứa địa chỉ IP làm cơ sở để tìm kiếm thông qua tệp cấu hình tường lửa của Cisco. Thông thường, tôi sẽ sử dụng một cái gì đó như:Cách grep một tập tin bằng cách sử dụng các tham số tìm kiếm từ một tập tin khác
for i in $(cat ip.file); do grep $i fw.config; done
Nhưng thực hiện điều đó hoàn toàn không có gì. Nếu tôi đưa kịch bản trên vào một tập tin và thực hiện nó với bash -xv cờ, mỗi dòng trả về một cái gì đó như thế này:
+ for i in '`cat ip.file`'
+ grep $'1.2.3.4\r' fw.config (each IP address is different)
grep 1.2.3.4 fw.config là chính xác những gì tôi muốn xảy ra, nhưng tôi không nhận được gì từ lệnh này.
Tôi biết tùy chọn grep -f, nhưng điều đó cũng không trả về gì cả. Tôi không phải là một coder có kinh nghiệm, vì vậy tôi có thể nhìn thấy một cái gì đó hiển nhiên.
này sẽ không giải quyết được vấn đề của bạn, nhưng bạn nên luôn luôn trích dẫn biến khi họ đang tranh luận với một lệnh. Bạn không nên sử dụng '--' để ngừng xử lý tùy chọn khi một trong các đối số cũng là một biến. 'grep -" $ i "fw.config' –