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
Kết nối ChatGPT và Gemini với OpenClaw: Thêm hai nhà cung cấp nữa trong 5 phút
Hướng dẫn thiết kế hoạt động STEM nhanh chóng
Hướng dẫn tạo bài tập, bài kiểm tra trên Alayna AI
999+ cap hay về thứ 7, stt thứ 7 vui vẻ, chào thứ 7
Mình yêu nhau xong rồi
Tìm hiểu về giao diện của Claude Cowork
Làm việc với file trong Claude Cowork
Cách tạo và sử dụng Avatar AI trên YouTube
Các connector và tích hợp trong Claude Cowork
Hướng dẫn lồng tiếng bằng AI trong Google Vids
Cách tạo các video mô phỏng và mô hình tương tác trực tiếp trong ứng dụng Gemini
Mẹo, thủ thuật và cách khắc phục sự cố trong Claude Cowork
Mẹo sử dụng ChatGPT phát hiện đường link lừa đảo
Cách tắt Gemini trong Gmail, Google Photos và Chrome nhanh nhất
Hướng dẫn sử dụng Cursor Composer
Các lệnh cốt lõi trong Claude Code
Quản lý ngữ cảnh trong Claude Code
Hướng dẫn xóa logo trong video AI trên Magic Eraser
Mẹo nhận biết văn bản do AI tạo ra
Hướng dẫn tạo ảnh anime AI trên PixAI