Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Phần Mềm

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Đối với người mới, công cụ tìm kiếm mẫu như findstr có thể có vẻ vô dụng. Nhưng khi xử lý file log hệ thống hoặc đầu ra dòng lệnh chứa hàng trăm dòng văn bản, findstr chính là công cụ bạn cần.

Người dùng Linux đã quen với sức mạnh tuyệt vời của lệnh Grep, và findstr đóng vai trò tương tự trong Microsoft Windows. Bạn có thể kết hợp nó với các lệnh khác qua pipe (ống dẫn) hoặc chạy trực tiếp để phân tích nhiều tệp văn bản. Hãy xem findstr hoạt động như thế nào qua vài ví dụ.

Sử Dụng Lệnh Findstr

Cú pháp cơ bản: findstr <string> <filepath>, trong đó <string> là mẫu cần tìm, <filepath> là đường dẫn tệp cần tìm. Mở Command Prompt và thử.

findstr SFC example1.txt

Lệnh này tìm và xuất tất cả dòng chứa chuỗi "SFC". Lưu ý: mặc định findstr phân biệt chữ hoa/thường (case-sensitive), nên "sfc" sẽ không khớp.

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Các Tham Số (Parameters)

Bạn tùy chỉnh hành vi findstr bằng các tham số tùy chọn. Các switch như /B hoặc /I thay đổi hành vi tìm kiếm, thêm điều kiện. Ví dụ:

findstr /I SFC example1.txt

Tham số /I làm tìm kiếm không phân biệt chữ hoa/thường (case-insensitive), khớp mọi viết hoa/thường của từ khóa. Danh sách đầy đủ tham số xem tại tài liệu Microsoft chính thức.

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Các Mẫu Tùy Chọn (Optional Patterns)

Tham số không phải cách duy nhất tùy chỉnh findstr. Bọc <string> trong dấu ngoặc kép cho phép chỉ định nhiều mẫu, khớp nếu tìm thấy bất kỳ chuỗi nào.

findstr "SFC DISM" example1.txt

Lệnh trên trả về dòng chứa "SFC" hoặc "DISM". Hữu ích khi tìm mục có tên khác nhau.

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Biểu Thức Chính Quy (Regular Expressions)

Findstr có thể tìm kiếm qua nhiều tệp. Thay <filepath> bằng biểu thức chính quy khiến lệnh tìm mẫu trong tất cả tệp khớp.

findstr SFC *.txt

Ký tự đại diện * khớp regex với tất cả tệp .txt trong thư mục hiện tại và thư mục con. Kết quả được tách theo tên tệp, cho biết dòng nào từ tệp nào.

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Pipe (Ống Dẫn)

Giống hầu hết lệnh cmd, findstr cũng dùng được trên đầu ra của lệnh khác. Chỉ cần thêm pipe | sau lệnh đích và gọi findstr không cần <filepath>.

dir | findstr .txt

Chạy findstr trên đầu ra của lệnh dir, trả về danh sách tệp kết thúc bằng .txt. Ví dụ này thực tế không cần thiết vì dir đã có thể lọc tệp theo regex.

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Cách dài hơn: chuyển hướng đầu ra vào tệp text rồi dùng findstr trên tệp đó, nhưng dùng pipe trực tiếp nhanh gọn hơn.

Ứng Dụng Của Findstr Trong Windows

Các trường hợp dùng rõ ràng từ cú pháp: tìm tệp text chứa chuỗi cụ thể, hoặc kiểm tra chuỗi có trong tệp không. Tuy hiếm dùng ngoài các trường hợp đặc biệt (ngày nay ít người lưu nhiều tệp text nhờ đám mây như Google Docs).

Ứng dụng thực sự của findstr tinh vi hơn và cho kết quả mạnh mẽ. Dưới đây là vài ví dụ hay:

Tìm Loại Tệp Cụ Thể

Lệnh dir đã có tùy chọn tìm tên tệp bằng regex. Nhưng với findstr, bạn tìm tệp chia sẻ thuộc tính khác như thời gian hoặc ngày tạo.

Giả sử lỗi xảy ra lúc 06:43 PM, bạn muốn tìm tất cả file log tạo lúc đó. Dùng dir một mình phải lọc thủ công. Với findstr:

dir | findstr 06:43

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Cách tương tự tìm file tạo ngày cụ thể hoặc liệt kê thư mục:

dir | findstr DIR

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Lọc Thông Tin Mạng Với Netstat

netstat cho tất cả thông tin kết nối mạng – quá nhiều thông tin, findstr giúp lọc. Piping đầu ra netstat vào findstr để tìm kết nối với thuộc tính cụ thể. Ví dụ: liệt kê tất cả kết nối ESTABLISHED (đã thiết lập):

netstat | findstr ESTABLISHED

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Mẹo này hữu ích khi chẩn đoán sự cố mạng. Bạn thậm chí dùng findstr với PID ứng dụng để tìm tất cả kết nối do một tiến trình cụ thể mở:

netstat -o | findstr 13120

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Lấy Địa Chỉ IP Cụ Thể

Lệnh ipconfig hiển thị chi tiết tất cả giao diện mạng, bao gồm địa chỉ IP. Dùng findstr trích xuất loại IP cụ thể mà không cần cuộn toàn bộ.

ipconfig | findstr Temporary

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Mở rộng phương pháp này để lấy bất kỳ thông tin nào từ ipconfig: subnet mask, gateway, v.v.

Phân Tích File Script

Dù ngôn ngữ lập trình nào, file script cuối cùng là văn bản. Dùng findstr phân tích script, lấy đoạn cụ thể mà không cần duyệt toàn bộ code.

Ví dụ: muốn xem câu lệnh if được dùng như thế nào trong script. Lệnh:

findstr if script.ahk

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

Không chỉ hiển thị dòng dùng if, còn cả biểu thức đi kèm. Thêm tham số /N để hiển thị số dòng, rất tiện cho file script.

findstr /N if script.ahk

Làm Chủ FindStr: Mẹo Chuyên Nghiệp & Ví Dụ Thực Tế Cho Dòng Lệnh Windows

FindStr Có Giá Trị Sử Dụng Không?

Khó khăn chính khi làm việc dòng lệnh là lượng văn bản lớn phải lọc. Findstr là công cụ bất khả thi để trích xuất thông tin hữu ích và loại bỏ rác.

Vì mọi lệnh terminal đều xuất ra văn bản, findstr luôn có thể dùng để định vị dữ liệu liên quan. Từ khắc phục sự cố mạng đến tìm tệp đúng, mọi hành động hiệu quả hơn với findstr.

Ngoài sự phối hợp với lệnh khác, findstr hữu ích nhờ duyệt nội dung tệp text. Bạn tìm lỗi cụ thể trong file log sinh ra bởi máy, hoặc lấy đoạn code trong script phức tạp.

Tóm lại, findstr là công cụ không thể thiếu trong bộ công cụ của bất kỳ người dùng Windows nâng cao nào, đặc biệt là người muốn làm quen với giao diện dòng lệnh.