🌱 Bash Script Regular Expression: Tổng Quan và Ứng Dụng
Regular Expression (Regex) là một công cụ mạnh mẽ giúp tìm kiếm và thao tác chuỗi văn bản. Trong Bash Script, Regex đóng vai trò quan trọng trong việc kiểm tra, lọc và xử lý dữ liệu. Bài viết này sẽ cung cấp tổng quan về Bash Regex, cú pháp cơ bản và các ví dụ ứng dụng thực tế.
➤ Bài viết giới thiệu về Regex
Table of Contents
- Regular Expression Là Gì?
- Cú Pháp Regular Expression Trong Bash
- Toán Tử Regex Quan Trọng
- Ví Dụ Ứng Dụng Regular Expression Trong Bash
- Ví Dụ Thực Tế
- Kết Luận
1. Regular Expression trong Bash
Regular Expression (Regex) là một mẫu (pattern) để tìm kiếm hoặc khớp với chuỗi văn bản. Regex có thể được sử dụng để xác minh định dạng, trích xuất dữ liệu và thay thế nội dung trong các file hoặc chuỗi văn bản.
Cú Pháp Regular Expression Trong Bash
Trong Bash Script, Regular Expression thường được sử dụng với các lệnh như [[ ]]
, grep
, sed
hoặc awk
.
- #! /bin/bash
- # Cú pháp cơ bản trong Bash
- if [[ "string" =~ regex ]]; then
- echo "Match found!"
- fi
Trong đó:
[[ ]]
: Sử dụng để so khớp Regex trong Bash.string
: Chuỗi cần kiểm tra.regex
: Regular Expression cần so khớp.
Toán Tử Regex quan trọng trong Bash
Dưới đây là một số ký tự và toán tử cơ bản trong Regex:
Ký Tự / Toán Tử | Ý Nghĩa |
---|---|
. |
Ký tự bất kỳ |
^ |
Khớp với đầu dòng |
$ |
Khớp với cuối dòng |
[ ] |
Khớp với một ký tự bất kỳ trong tập hợp |
* |
Khớp với 0 hoặc nhiều lần lặp lại ký tự trước đó |
+ |
Khớp với 1 hoặc nhiều lần lặp lại ký tự trước đó |
\d |
Khớp với chữ số (0-9) |
2. Ví Dụ Ứng dụng Regular Expression trong Bash
Kiểm Tra Chuỗi Có Chứa Ký Tự Số
- #!/bin/bash
- string="Hello123"
- if [[ $string =~ [0-9] ]]; then
- echo "Chuỗi chứa ký tự số."
- else
- echo "Chuỗi không chứa ký tự số."
- fi
Kiểm Tra Địa Chỉ Email
- #!/bin/bash
- email="user@example.com"
- if [[ $email =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then
- echo "Địa chỉ email hợp lệ."
- else
- echo "Địa chỉ email không hợp lệ."
- fi
Tìm Chuỗi Khớp Trong File
# Tìm dòng chứa "error" trong file log
grep "error" logfile.txt
5. Ví dụ thực tế: Lọc dữ liệu Log
Giả sử bạn có một file log và muốn tìm tất cả các dòng chứa địa chỉ IP:
- #!/bin/bash
- # File log chứa dữ liệu
- logfile="server.log"
- # Regex để tìm địa chỉ IP
- grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' $logfile
Giải thích:
-E
: Cho phép sử dụng Regex mở rộng.-o
: Chỉ in các chuỗi khớp với mẫu.
Giả sử nội dung file server.log:
- [INFO] Server started at 192.168.0.1
- [WARNING] Connection timeout from 10.0.0.2
- [ERROR] Failed to bind to 127.0.0.1
- [INFO] Client connected from 192.168.1.10
- [INFO] Ping received from 10.10.0.5
Output khi chạy đoạn Script trên với file server.log
- 192.168.0.1
- 10.0.0.2
- 127.0.0.1
6. Kết Luận
Bash Script Regular Expression là một công cụ cực kỳ mạnh mẽ và linh hoạt trong việc tìm kiếm và xử lý chuỗi. Từ việc kiểm tra dữ liệu đầu vào đến lọc và trích xuất thông tin từ file, Regex giúp các script của bạn trở nên hiệu quả hơn. Hãy áp dụng những kiến thức này để tối ưu hóa công việc tự động hóa trong Bash!
>>>>>> Follow ngay <<<<<<<
Để nhận được những bài học miễn phí mới nhất nhé 😊
Chúc các bạn học tập tốt 😊