Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Lệnh grep cung cấp quyền truy cập vào tiện ích grep, một công cụ xử lý file mạnh mẽ được sử dụng để tìm các mẫu trong file văn bản. Lệnh này có nhiều trường hợp sử dụng thực tế và chắc chắn là một trong những lệnh Linux được sử dụng nhiều nhất. Hướng dẫn này minh họa một số lệnh grep Linux đơn giản nhưng hữu ích được sử dụng trong thực tế.
Bài viết đã tạo một file tham khảo để giúp người đọc hiểu về grep hiệu quả hơn. Bạn có thể tạo một bản sao của file này bằng cách đưa ra lệnh shell sau trong Terminal.
cat <<END >> test-file
This is a simple text file that contains
multiple strings as well as some telephone numbers
(555) 555-1234 (567) 666-2345
and email plus web addresses
john@doe.com
https://google.com
ftp://mywebserver.com
END
Để tìm kiếm mẫu văn bản trong file, chỉ cần chạy grep theo sau là tên mẫu. Ngoài ra, hãy chỉ định tên của file chứa văn bản.
grep "email" test-file
Lệnh này sẽ hiển thị dòng trong test-file có chứa từ email. Bạn cũng có thể tìm kiếm cùng một văn bản trong nhiều file bằng grep.
grep "example" /usr/share/dict/american-english /usr/share/dict/british-english
Lệnh trên hiển thị tất cả mọi trường hợp của từ example trong các file từ điển american-english và british-english.
Lệnh grep của Linux được minh họa trong ví dụ trước đó cũng liệt kê các dòng có khớp một phần. Sử dụng lệnh dưới đây nếu bạn chỉ cần sự xuất hiện của một từ khớp hoàn toàn.
grep -w "string" test-file
Tùy chọn -w hoặc --word-regexp của grep chỉ giới hạn đầu ra đối với các kết quả khớp hoàn toàn. Grep bao gồm một số flag bổ sung có thể được sử dụng với lệnh mặc định.
Theo mặc định, grep tìm kiếm các mẫu có phân biệt chữ hoa chữ thường. Tuy nhiên, bạn có thể muốn tắt tính năng này nếu không biết trước mẫu đó thuộc trường hợp nào.
grep -i "this" test-file
Sử dụng tùy chọn -i hoặc --ignore-case để tắt tính năng phân biệt chữ hoa chữ thường.
Flag -c là viết tắt của count. Nó hiển thị số lượng kết quả phù hợp đã được tìm thấy cho một mẫu cụ thể. Quản trị viên có thể sử dụng điều này để truy xuất thông tin cụ thể về hệ thống.
Bạn có thể pipe lệnh ps với grep để đếm các tiến trình thuộc về người dùng hiện tại.
ps -ef | grep -c $USER
Lệnh sau đây hiển thị số lượng file MP3 có trong một thư mục.
ls ~/Music | grep -c .mp3
Bạn có thể muốn tìm số dòng chứa một kết quả khớp nhất định. Sử dụng tùy chọn -n hoặc --line-number của grep để đạt được điều này.
cat /etc/passwd | grep -n rubaiat
Tùy chọn này đặc biệt hữu ích để gỡ lỗi mã nguồn và khắc phục sự cố file nhật ký. Để hiển thị tất cả số cho các dòng trong ~/.vimrc được sử dụng để cấu hình trình soạn thảo văn bản Vim:
grep -n "set" ~/.vimrc
Để có danh sách tất cả các file MP3 trong thư mục ~/Music:
ls ~/Music/ | grep ".mp3"
Bạn có thể thay thế .mp3 bằng bất kỳ phần mở rộng nào khác để định vị các file cụ thể. Lệnh sau liệt kê tất cả các file php có trong thư mục hiện hành.
ls | grep ".php"
Lệnh grep của Linux cũng có thể tìm thấy các mẫu bên trong file nén. Tuy nhiên, bạn sẽ cần sử dụng lệnh zgrep để thực hiện việc này. Trước tiên, hãy tạo một kho lưu trữ nén của test-file bằng cách nhập:
gzip test-file
Bây giờ, bạn có thể tìm kiếm văn bản hoặc các mẫu khác bên trong kho lưu trữ kết quả.
zgrep email test-file.gz
Quản trị viên cũng có thể liệt kê các địa chỉ email từ những file văn bản bằng lệnh grep Linux. Ví dụ sau thực hiện điều này bằng cách tìm kiếm một mẫu biểu thức chính quy (regular expression).
grep '^[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.[a-z]\{2,\}' test-file
Bạn có thể tìm thấy các biểu thức chính quy để thực hiện những công việc tương tự hoặc tự tạo nếu bạn biết cách chúng hoạt động.
Bạn có thể sử dụng biểu thức chính quy grep để lọc số điện thoại từ file văn bản. Lưu ý rằng bạn phải điều chỉnh mẫu để phù hợp với loại số điện thoại bạn cần.
grep '\(([0-9]\{3\})\|[0-9]\{3\}\)[ -]\?[0-9]\{3\}[ -]\?[0-9]\{4\}' test-file
Lệnh nói trên lọc ra các số điện thoại Mỹ gồm 10 chữ số.
Bạn có thể tận dụng sức mạnh của grep để liệt kê các URL được tìm thấy trong file văn bản. Lệnh dưới đây sẽ in tất cả các URL có trong test-file.
grep -E "^(http|https|ftp):[\/]{2}([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4})" test-file
Ví dụ sẽ lại sử dụng tùy chọn -E cho các biểu thức chính quy mở rộng. Bạn cũng có thể sử dụng lệnh egrep để tránh thêm điều này.
egrep "^(http|https|ftp):[\/]{2}([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4})" test-file
Trên đây là một số ví dụ thực tiễn về cách sử dụng lệnh grep trong Linux.
Chúc bạn áp dụng thành công!
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Hướng dẫn phân tích video Google Drive bằng Gemini
Bí ý tưởng viết status? Tool này sẽ tạo status cực hay chỉ vài giây
Cách dùng Trợ lý email viết email phản hồi chuyên nghiệp
Trợ lý Excel & Sheets AI: Tạo công thức, hàm và sửa lỗi nhanh
TOP công cụ AI phát triển trò chơi điện tử tốt nhất
Hướng dẫn phân tích tài liệu Google Drive bằng Gemini
Tạo file âm thanh tổng quan tài liệu Google Drive
TOP lựa chọn thay thế ChatGPT tốt nhất
Hướng dẫn kết nối Google Drive vào Claude và cách sử dụng hiệu quả
TOP phần mềm AI antivirus toàn diện nhất
Hướng dẫn ghi chú cuộc họp Google Meet bằng Gemini
Tìm hiểu về GLM 5.2: Mô hình trọng số mở vượt trội hơn GPT 5.5 về các tiêu chuẩn thiết kế và lập trình
Hướng dẫn tạo video AI ngắn bằng Google Vids
Cách huấn luyện ChatGPT bằng dữ liệu riêng
AI Burnout là gì? Vì sao AI có thể khiến bạn làm việc nhiều hơn và kiệt sức
OpenAI Presence: Nền tảng AI agent dành cho doanh nghiệp chính thức ra mắt
Xu hướng tự động hóa AI năm 2026: Từ chatbot đến hệ điều hành
TOP công cụ AI chuyển ảnh thành tranh vẽ
Prompt AI biến logo thành mô hình nhựa 3D siêu chân thực
Top 5 MCP Server tốt nhất để xây dựng AI Agent hiệu năng cao năm 2026