Findstr: Ví dụ và Mẹo Sử dụng Công cụ Windows CMD Tiện dụng này

Đối với những người chưa bắt đầu, một công cụ tìm kiếm mẫu như findstr có vẻ vô dụng. Nhưng khi xử lý các tệp nhật ký do hệ thống tạo ra hoặc các đầu ra dòng lệnh chứa hàng trăm dòng văn bản, findstr chỉ là công cụ bạn cần.

Người dùng hệ điều hành Linux đã quen thuộc với tiện ích đáng kinh ngạc của lệnh Grep và findstr hoàn thành 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(other commands) bằng cách sử dụng đường ống hoặc chỉ chạy nó trực tiếp để phân tích cú pháp qua nhiều tệp văn bản. Hãy xem cách hoạt động của findstr với một vài ví dụ.

Sử dụng lệnh Findstr

Cú pháp cơ bản rất đơn giản - findstr , ở đâulà hình mẫu để tìm kiếm vàlà địa chỉ của tệp để tìm kiếm. Mở Command Prompt và thử.

findstr SFC example1.txt

Lệnh này sẽ tìm và xuất ra tất cả các dòng chứa chuỗi tìm kiếm SFC . Lưu ý rằng theo mặc định, findstr là phân biệt chữ hoa chữ thường, vì vậy bất kỳ đề cập nào của SFC sẽ không khớp.

Thông số

Bạn có thể tùy chỉnh thêm cách thức hoạt động của findstr bằng cách bao gồm các tham số tùy chọn. Các công tắc như / B hoặc / I sửa đổi hành vi của findstr, áp đặt các điều kiện bổ sung cho tìm kiếm. Ví dụ:

findstr /I SFC example1.txt

Việc bao gồm / I làm tham số làm cho cụm từ tìm kiếm không phân biệt chữ hoa chữ thường, cho phép tất cả các đề cập của cụm từ khớp với nhau, bất kể cách viết hoa của chúng. Bạn có thể tìm thấy danh sách tất cả các tham số của findstr trong tài liệu chính thức của Microsoft(official Microsoft docs) .

Các mẫu tùy chọn

Các thông số không phải là cách duy nhất bạn có thể tùy chỉnh findstr. Ví dụ: bao gồm <string> trong dấu ngoặc kép, cho phép bạn chỉ định nhiều mẫu, cho phép bạn so khớp nếu tìm thấy bất kỳ chuỗi văn bản nào.

findstr “SFC DISM” example1.txt

Ở trên sẽ trả về các dòng phù hợp có chứa một trong các điều khoản. Điều này rất hữu ích khi tìm kiếm đề cập cho một mục có tên khác.

Biểu thức chính quy

Findstr có khả năng tìm kiếm qua nhiều tệp. Thay đổithành một biểu thức chính quy làm cho lệnh tìm kiếm mẫu được chỉ định trong tất cả các tệp phù hợp.

findstr SFC *.txt

Sử dụng ký tự đại diện khớp regex với tất cả các tệp văn bản trong thư mục hiện tại và các thư mục con của nó. Các kết quả cũng được phân tách theo tên tệp, cho phép bạn xem dòng nào bắt nguồn từ tệp nào.

Đường ống

Giống như hầu hết các lệnh cmd, findstr cũng có thể được sử dụng trên đầu ra của các lệnh khác. Chỉ cần(Just) thêm một đường ống sau khi kết thúc lệnh đích và gọi findstr mà không có.

dir | findstr .txt

Thao tác này chạy tìm kiếm findstr trên đầu ra của lệnh dir, trả về danh sách tệp kết thúc bằng .txt . Tất nhiên, ví dụ cụ thể này vô dụng trong thực tế vì dir đã có thể định vị các tệp cùng loại với một biểu thức chính quy.

Người ta cũng có thể thực hiện con đường dài hơn là chuyển hướng đầu ra đến tệp văn bản(redirecting the output to a text file) và sau đó sử dụng findstr trên tệp văn bản, nhưng việc cắt trung gian sẽ dễ dàng hơn.

Các ứng dụng của Findstr trong Windows

Các công dụng rõ ràng của findstr có thể dễ dàng thấy rõ chỉ từ cú pháp. Bạn có thể tìm kiếm các tệp văn bản với một chuỗi văn bản cụ thể hoặc xem liệu một chuỗi cụ thể có chứa trong một tệp hay không.

Điều này, trong khi về mặt lý thuyết hữu ích, hiếm khi được sử dụng bên ngoài các trường hợp hiếm hoi. Trong thời đại của các dịch vụ đám mây như Google Docs , hầu hết mọi người không còn có nhiều tệp văn bản nữa.

Các ứng dụng thực tế của findstr tinh tế hơn một chút và liên quan đến các kết quả mạnh mẽ hơn. Dưới đây là một số ví dụ thú vị hơn.

Tìm các loại tệp cụ thể

Lệnh dir đã bao gồm tùy chọn để tìm kiếm tên tệp bằng cách sử dụng biểu thức chính quy. Nhưng với findstr, bạn có thể tìm kiếm các tệp chia sẻ các thuộc tính khác, chẳng hạn như thời gian hoặc ngày tạo.

Giả sử(Suppose) có lỗi xảy ra lúc 06:43 PM và bạn muốn định vị tất cả các tệp nhật ký được tạo tại thời điểm đó. Chỉ với lệnh dir, bạn sẽ phải sàng lọc kết quả theo cách thủ công hoặc lấy tất cả các tệp nhật ký và so sánh chúng. Sử dụng findstr, đây sẽ trở thành một lệnh đơn giản.

dir | findstr 06:43

Bạn có thể thử thủ thuật tương tự để tìm các tệp được tạo vào một ngày cụ thể hoặc lấy danh sách các thư mục.

dir | findstr DIR

Lọc thông tin mạng(Network Information) với Netstat

Netstat là một lệnh (Netstat)Windows tiện dụng cung cấp cho bạn tất cả thông tin về các kết nối mạng của máy tính của bạn — quá nhiều thông tin, đó là nơi findstr xuất hiện.

Piping đầu ra của netstat vào findstr cho phép bạn tìm kiếm các kết nối với các thuộc tính cụ thể. Ví dụ, đây là cách bạn có thể lấy danh sách tất cả các kết nối đã thiết lập.

netstat | findstr ESTABLISHED

Thủ thuật này rất hữu ích khi chẩn đoán các sự cố mạng. Bạn thậm chí có thể sử dụng findstr với một PID ứng dụng để tìm tất cả các kết nối được mở bởi một quy trình cụ thể.

netstat -o | findstr 13120

Lấy địa chỉ IP cụ thể

Lệnh ipconfig cho phép bạn xem chi tiết tất cả các giao diện mạng của hệ thống, bao gồm cả địa chỉ IP. Bạn có thể sử dụng findstr để trích xuất một loại địa chỉ IP cụ thể mà không cần phải cuộn qua toàn bộ.

ipconfig | findstr Temporary

Bạn có thể mở rộng phương pháp này để lấy bất kỳ thông tin nào từ ipconfig, từ mặt nạ mạng con đến địa chỉ cổng.

Phân tích tệp tập lệnh

Cho dù bạn viết mã bằng ngôn ngữ lập trình nào, các tệp kịch bản cuối cùng cũng chỉ là văn bản. Điều này có nghĩa là bạn có thể sử dụng findstr để phân tích các tập lệnh và truy xuất các phần cụ thể mà không cần tìm kiếm toàn bộ mã.

Giả sử(Say) chúng ta muốn xem câu lệnh if đã được sử dụng như thế nào trong một tập lệnh cụ thể. Chúng ta có thể sử dụng lệnh sau:

findstr nếu script.ahk(findstr if script.ahk )

Điều này không chỉ hiển thị các dòng sử dụng câu lệnh if mà còn hiển thị cho chúng ta các biểu thức được sử dụng. Bạn cũng có thể bao gồm tham số / N để hiển thị số dòng, điều này rất tiện dụng cho các tệp script.

findstr /N if script.ahk

Findstr có đáng để sử dụng không?

Khó khăn chính trong việc điều hướng giao diện dòng lệnh là lượng văn bản mà người ta cần phải sàng lọc. Findstr là một công cụ cần thiết để trích xuất thông tin hữu ích và lọc ra những thứ rác rưởi.

Vì tất cả các lệnh đầu cuối đều đưa ra kết quả dựa trên văn bản, nên findstr luôn có thể được sử dụng để định vị dữ liệu có liên quan. Từ khắc phục sự cố mạng(troubleshooting network issues) đến tìm đúng tệp, mọi hành động đều được thực hiện hiệu quả hơn với findstr.

Ngay cả ngoài sức mạnh tổng hợp của nó với các lệnh khác, findstr rất hữu ích cho khả năng duyệt nội dung của các tệp văn bản. Bạn có thể tìm thấy các lỗi cụ thể trong các tệp nhật ký do máy tạo ra hoặc truy xuất các phần mã trong một tập lệnh phức tạp.

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



About the author

Tôi là một kỹ sư phần mềm và blogger với gần 10 năm kinh nghiệm trong lĩnh vực này. Tôi chuyên tạo các bài đánh giá và hướng dẫn về công cụ cho các nền tảng Mac và Windows, cũng như cung cấp các bình luận của chuyên gia về các chủ đề phát triển phần mềm. Tôi cũng là một diễn giả và người hướng dẫn chuyên nghiệp, từng thuyết trình tại các hội nghị công nghệ trên thế giới.



Related posts