Cách tìm văn bản trong tệp trong Linux

How Find Text Files Linux



Đối với một quản trị viên hệ thống, làm việc với các tệp văn bản là một hiện tượng phổ biến. Có thể cần tìm một phần cụ thể từ đống tệp nhật ký để khắc phục sự cố gì đó? Hoặc, cần tìm tài liệu có chứa thông tin cần thiết một cách nhanh chóng?

Trong trường hợp của Linux, có rất nhiều phương pháp để tìm văn bản trong tệp. Có thể sử dụng cả các công cụ tích hợp sẵn và các ứng dụng của bên thứ ba. Kiểm tra cách tìm văn bản trong tệp trong Linux.







Tìm văn bản trong tệp

Tùy thuộc vào số lượng tệp bạn phải thực hiện tìm kiếm, có hai cách để thực hiện tìm kiếm văn bản: tự động hoặc thủ công. Nếu bạn phải làm việc với một vài tệp văn bản, tìm kiếm thủ công là phù hợp hơn. Tuy nhiên, nếu có hàng trăm tệp văn bản, thì tìm kiếm tự động là hiệu quả nhất.



Đối với tìm kiếm tự động, chúng tôi sẽ sử dụng grep. Grep được cài đặt sẵn trên bất kỳ bản phân phối Linux nào. Đối với tìm kiếm thủ công, bất kỳ trình soạn thảo văn bản hiện đại nào sẽ thực hiện công việc.



Tìm văn bản trong tệp bằng grep

Trong Linux, grep là công cụ mặc định để tìm kiếm văn bản. Tên của nó có nguồn gốc từ lệnh ed g / re / p, viết tắt của tìm kiếm toàn cục cho một biểu thức chính quy và in các dòng khớp. Nó có sẵn trên bất kỳ bản phân phối Linux hiện đại nào.





Grep là một công cụ dòng lệnh. Cấu trúc lệnh của nó như sau.

$nắm chặt <Lựa chọn> <biểu hiện thông thường> <đường dẫn tập tin>

Như tên của grep gợi ý, mẫu để tìm kiếm được mô tả bằng cách sử dụng một biểu thức chính quy. Biểu thức chính quy là một loại chuỗi đặc biệt mô tả một mẫu để đối sánh, định vị và quản lý. Để tìm hiểu thêm về grep và biểu thức chính quy, hãy xem sử dụng grep và egrep với biểu thức chính quy .



Đối với mục đích trình diễn, hãy lấy một tệp văn bản mẫu. Trong ví dụ này, hãy tải xuống Tệp văn bản Giấy phép Công cộng GNU v3.0 .

Tìm kiếm cơ bản

Cách cơ bản của việc sử dụng grep là tìm kiếm một chuỗi cơ bản.

Hãy xem lệnh grep sau đây. Nó sẽ tìm kiếm từ GNU trong tệp văn bản.

$nắm chặt 'GNU'lpg-3.0.txt

Để hiển thị số dòng, hãy sử dụng cờ -n.

$nắm chặt -nGNU gpl-3.0.txt

Để thực hiện tìm kiếm không phân biệt chữ hoa chữ thường bằng grep, hãy sử dụng cờ -i.

$nắm chặt -nignu gpl-3.0.txt

Bạn có thể không muốn xem kết quả tìm kiếm mà chỉ xem tên tệp nơi trận đấu đã xảy ra trong một số tình huống. Để chỉ in tên tệp, hãy sử dụng cờ -l. Ở đây, dấu hoa thị biểu thị sử dụng tất cả các tệp văn bản trong thư mục hiện tại.

$nắm chặt -NSgnu*

Chúng tôi cũng có thể chuyển đầu ra của các lệnh khác thành grep.

$con mèolpg-3.0.txt| nắm chặt -nGNU

Biểu hiện thông thường

Regex cung cấp một cách thông minh để tinh chỉnh tìm kiếm. Nó có quy tắc riêng của nó. Tuy nhiên, các ứng dụng và ngôn ngữ lập trình khác nhau triển khai biểu thức chính quy khác nhau. Dưới đây là một số ví dụ mà bạn có thể sử dụng với grep.

Để xác định rằng chuỗi sẽ được tìm thấy khi bắt đầu một dòng, hãy sử dụng ký hiệu dấu mũ (^).

$nắm chặt -n^ GNU gpl-3.0.txt

Để xác định rằng chuỗi sẽ được tìm thấy ở cuối dòng, hãy sử dụng ký hiệu đô la ($).

$nắm chặt -nđến $ gpl-3.0.txt

Để mô tả rằng có thể có bất kỳ ký tự nào tại một vị trí nhất định của mẫu, hãy sử dụng ký tự dấu chấm (.). Ví dụ: biểu thức G.U hợp lệ nếu có bất kỳ ký tự nào giữa G và U.

$nắm chặt -nG.U gpl-3.0.txt

Để mô tả rằng có thể có một tập hợp con các ký tự tại một vị trí cụ thể của mẫu, hãy sử dụng dấu ngoặc ([]). Ví dụ, biểu thức t [wo] o cho biết rằng kết quả phù hợp chỉ có giá trị cho hai và quá.

$nắm chặt -nNS[Ở đâu]o gpl-3.0.txt

Biểu thức chính quy mở rộng

Như tên cho thấy, một biểu thức chính quy mở rộng có thể thực hiện nhiều việc phức tạp hơn so với các biểu thức chính quy cơ bản. Để sử dụng biểu thức chính quy mở rộng với grep, bạn phải sử dụng cờ -E.

$nắm chặt -sinh ra <Extended_regex> <tập tin>

Để tìm kiếm hai chuỗi khác nhau, hãy sử dụng toán tử OR (|).

$nắm chặt -sinh raGNU|Tổng quan|Giấy phép gpl-3.0.txt

Tìm văn bản trong tệp

Bây giờ đến phần chính. Thay vì yêu cầu tệp grep thực hiện tìm kiếm theo cách thủ công, grep có thể tự động thực hiện việc đó. Trong lệnh sau, grep sẽ sử dụng tất cả các tệp văn bản có sẵn trong thư mục hiện tại để tìm kiếm mẫu.

$nắm chặt <regex> *

Nếu bạn muốn grep để thực hiện tìm kiếm trên một thư mục khác, thì bạn phải chỉ định vị trí.

$nắm chặt <regex> <directory_path>

Nếu có các thư mục, grep không khám phá chúng theo mặc định. Để yêu cầu grep tìm kiếm đệ quy, hãy sử dụng cờ -R.

$nắm chặt -nR <regex> <directory_path>

Grip GUI

Nếu bạn thích làm việc với GUI nhưng vẫn muốn tận hưởng các tính năng của grep, thì hãy xem searchmonkey. Đó là giải pháp giao diện người dùng cho grep. Gói này có sẵn trên hầu hết các bản phân phối Linux chính.

Tìm văn bản trong tệp bằng nano

GNU Nano là một trình soạn thảo văn bản đơn giản và mạnh mẽ đi kèm với bất kỳ bản phân phối Linux nào. Nó được tích hợp các tính năng để tìm kiếm văn bản trong một tệp văn bản.

Lưu ý rằng trong phương pháp này, bạn phải mở tệp văn bản và tìm kiếm theo cách thủ công. Điều đó hoàn toàn khả thi nếu chỉ có một số ít tệp văn bản để làm việc. Nếu có nhiều hơn, thì sử dụng grep là lựa chọn tối ưu nhất.

Mở tệp văn bản bằng nano.

$nano <đường dẫn tập tin>

Để tìm kiếm một chuỗi khớp, nhấn Ctrl + W. Sau khi nhập chuỗi cần tìm, nhấn Enter.

Tìm văn bản trong tệp bằng Vim

Vim là một trình soạn thảo văn bản nổi tiếng và có uy tín. Đây là dòng lệnh tương đương với một trình soạn thảo văn bản hiện đại. Vim đi kèm với nhiều tính năng nâng cao như plugin, macro, tự động hoàn thành, bộ lọc, v.v.

Tương tự như nano, Vim hoạt động với một tệp duy nhất tại một thời điểm. Nếu bạn có nhiều tệp văn bản, thì sử dụng grep là cách tối ưu nhất để thực hiện.

Để tìm kiếm trong một tệp văn bản, trước tiên, hãy mở tệp đó trong Vim.

$tôi đã đến <đường dẫn tập tin>

Nhập lệnh Vim sau và nhấn Enter.

$:/<search_term>

Tìm văn bản trong tệp bằng GNOME Text Editor

GNOME Text Editor là trình soạn thảo văn bản đi kèm với máy tính để bàn GNOME. Đây là một trình soạn thảo văn bản đơn giản với tất cả các tính năng cơ bản mà bạn mong đợi. Đây là một sự thay thế tuyệt vời cho các trình soạn thảo văn bản dòng lệnh.

Tương tự như nano và vim, phương pháp này cũng cần thận trọng. Nếu số lượng tệp văn bản lớn, thì bạn nên sử dụng grep.

Mở tệp văn bản trong Trình soạn thảo văn bản. Nhấn Ctrl + F để hiển thị thanh tìm kiếm.

Tìm văn bản trong tệp bằng VS Code

Visual Studio Code là một trình soạn thảo văn bản mạnh mẽ với rất nhiều tính năng. Nó được tối ưu hóa để các lập trình viên sử dụng như thể nó là một IDE chính thức. Nó có sẵn trên hầu hết tất cả các bản phân phối Linux chính.

Cài đặt gói Visual Studio Code snap.

$sudobúng tayTải vềmã số--cổ điển

Mở tệp văn bản trong VS Code. Nhấn Ctrl + F để bắt đầu tìm kiếm.

Suy nghĩ cuối cùng

Có nhiều cách để tìm kiếm văn bản trong tệp. Đó là một nhiệm vụ dễ dàng để thành thạo. Chúng tôi đặc biệt khuyên bạn nên nắm vững lệnh grep vì nó mang lại nhiều giá trị nhất về hiệu quả và dễ sử dụng.

Nếu bạn thích GUI, thì có rất nhiều trình soạn thảo văn bản để bạn lựa chọn. Bất kỳ trình soạn thảo văn bản hiện đại nào cũng sẽ cung cấp tùy chọn tìm kiếm văn bản.

Chúc bạn tin học vui vẻ!