Hướng dẫn Bash Globbing

Bash Globbing Tutorial



Bash không hỗ trợ các biểu thức chính quy như một số ngôn ngữ lập trình tiêu chuẩn khác. Tính năng Bash shell được sử dụng để so khớp hoặc mở rộng các loại mẫu cụ thể được gọi là globbing. Globbing chủ yếu được sử dụng để khớp với tên tệp hoặc tìm kiếm nội dung trong tệp. Globbing sử dụng các ký tự đại diện để tạo mẫu. Các ký tự đại diện phổ biến nhất được sử dụng để tạo các mẫu hình cầu được mô tả bên dưới.

‘?’ được sử dụng để khớp với bất kỳ ký tự đơn lẻ nào. Bạn có thể dùng ‘?’ cho nhiều lần để khớp nhiều ký tự.







Ví dụ 1:



Giả sử, bạn muốn tìm kiếm những tên tệp văn bản có tên dài 4 ký tự và phần mở rộng là .txt . Bạn có thể áp dụng hình cầu bằng cách sử dụng ‘ ? 'Bốn lần để thực hiện nhiệm vụ này.



Tìm danh sách tất cả các tệp và thư mục của thư mục hiện tại.





$ls-NS

Chạy lệnh sau, tìm kiếm các tệp có tên dài bốn ký tự và không xác định.

$ ls -l ????. txt



Ví dụ-2:

Giả sử, bạn muốn tìm kiếm những tệp tài liệu có tên dài 8 ký tự, 4 ký tự đầu tiên là f, o, oNS và phần mở rộng là doc . Chạy lệnh sau với hình cầu để tìm kiếm các tệp.

$ls -NSchân ????. doc

Ví dụ-3:

Giả sử, bạn biết tên tệp là 'tốt nhất' và phần mở rộng dài 3 ký tự, nhưng không biết phần mở rộng. Chạy lệnh sau bằng cách sử dụng ‘? 'Để tìm kiếm tất cả các tệp có tên' test 'có bất kỳ phần mở rộng nào dài 3 ký tự.

$ls -NStốt nhất.???

Dấu hoa thị - (*)

‘*’ được sử dụng để khớp với không hoặc nhiều ký tự. Nếu bạn có ít thông tin hơn để tìm kiếm bất kỳ tệp hoặc thông tin nào thì bạn có thể sử dụng ‘*’ trong mô hình lấp lánh.

Ví dụ 1:

Giả sử, bạn muốn tìm kiếm tất cả các tệp của ‘Pl’ gia hạn. Chạy lệnh sau bằng cách sử dụng ‘*’ để thực hiện nhiệm vụ đó.

$ls -NS *.pl

Ví dụ-2:

Giả sử, bạn chỉ biết ký tự bắt đầu của tên tệp là 'đến' . Chạy lệnh sau bằng cách sử dụng ‘*’ để tìm kiếm tất cả các tệp của thư mục hiện tại có tên được bắt đầu bằng 'đến' .

$ls -NSđến*.*

Ví dụ-3:

Bạn có thể áp dụng ‘*’ trong tập lệnh bash cho nhiều mục đích khác nhau mà không cần tìm kiếm tệp. Tạo một tệp bash có tên ‘Check.sh’ với tập lệnh sau. Tại đây, khi người dùng sẽ gõ ‘ y ’hoặc‘ Y ’hoặc‘ yes ’hoặc‘ Yes ’ sau đó 'đã xác nhận' sẽ in và khi loại sẽ gõ ‘N’ hoặc ‘N’ hoặc ‘no’ hoặc ‘No’ sau đó 'Không được xác nhận' sẽ in.

#! / bin / bash
quăng đi 'Bạn có muốn xác nhận không?'
đọcbài giải
trường hợp $ câu trả lời trong
[Yy]* ) quăng đi 'đã xác nhận.';;
[Không]* ) quăng đi 'Không được xác nhận.';;
*) quăng đi 'Thử lại.';;
esac

Chạy tập lệnh.

$bấu víucheck.sh

Dấu ngoặc vuông - ([])

‘[]’ được sử dụng để so khớp ký tự từ phạm vi. Một số khai báo phạm vi được sử dụng nhiều nhất được đề cập bên dưới.

Tất cả các bảng chữ cái viết hoa được xác định bởi phạm vi là, [: upper:] hoặc [A-Z].

Tất cả các bảng chữ cái viết thường được xác định bởi phạm vi là, [: low:] hoặc [a-z].

Tất cả các chữ số dạng số được xác định bởi phạm vi là, [: chữ số:] hoặc [0-9].

Tất cả các bảng chữ cái viết hoa và viết thường được xác định bởi phạm vi là [: alpha:] hoặc [a-zA-z].

Tất cả bảng chữ cái viết hoa, bảng chữ cái viết thường và chữ số được xác định bởi phạm vi là [: alnum:] hoặc [a-zA-Z0-9]

Ví dụ 1:

Chạy lệnh sau để tìm kiếm tất cả các tệp và thư mục có tên chứa P hoặc Cái gì hoặc NS hoặc NS .

$ls -NS [p-s]*

Ví dụ-2:

Chạy lệnh sau để tìm kiếm tất cả các tệp và thư mục có tên bắt đầu bằng bất kỳ chữ số nào từ 1 đến 5.

$ls -NS [1-5]*

Anh ấy thiếu - (^)

Bạn có thể dùng ‘^’ với dấu ngoặc vuông để xác định hình cầu cụ thể hơn. ‘^’ có thể được sử dụng bên trong hoặc bên ngoài của dấu ngoặc vuông. ‘^’ Được sử dụng bên ngoài dấu ngoặc vuông để tìm kiếm những nội dung của tệp bắt đầu bằng một dải ký tự nhất định. ‘^’ Được sử dụng bên trong dấu ngoặc vuông để hiển thị tất cả nội dung của tệp bằng cách đánh dấu các dòng bắt đầu bằng một dải ký tự nhất định. Bạn có thể sử dụng các loại mô hình nhấp nháy khác nhau để tìm kiếm nội dung cụ thể từ một tệp. 'nắm chặt' lệnh được sử dụng để tìm kiếm nội dung trong bash. Giả sử, bạn có một tệp văn bản có tên 'List.txt' với nội dung sau đây. Kiểm tra các ví dụ sau cho tệp đó.

quả táo
4000
Chuối
700
quả cam
850

9000
jackdruit

Ví dụ 1:

Chạy lệnh sau để tìm kiếm các dòng đó từ list.txt tệp bắt đầu bằng P hoặc Q hoặc R .

$ grep '^ [P-R]' list.txt

Ví dụ - 2:

Chạy lệnh sau để đánh dấu các dòng đó từ list.txt tệp bắt đầu bằng A hoặc B hoặc C .

$ grep '[^ A-C]' list.txt

Dấu chấm than - (!)

Bạn có thể dùng '!' bên trong mô hình phạm vi. Nó hoạt động giống như việc sử dụng ký hiệu ‘^’ bên ngoài mẫu phạm vi. Một số ví dụ về việc sử dụng '!' dấu hiệu được đưa ra dưới đây.

Ví dụ 1:

Chạy lệnh sau để hiển thị các dòng đó từ list.txt tệp bắt đầu bằng ‘P’ hoặc Q hoặc R .

$ grep [! P-R] list.txt

Ví dụ - 2:

Chạy lệnh sau để hiển thị các dòng đó từ list.txt tệp bắt đầu bằng bất kỳ chữ số nào từ 4 đến 8 .

$ grep [! 4-8] list.txt

Ký hiệu đô la - ($)

‘$’ được sử dụng để xác định ký tự kết thúc. Nếu bạn biết muốn tìm kiếm thông tin dựa trên ký tự cuối cùng thì bạn có thể sử dụng ‘$’ trong mô hình lấp lánh.

Ví dụ 1:

Chạy lệnh sau để tìm kiếm các dòng đó từ list.txt tệp kết thúc bằng 'đến' .

$ grep a $ list.txt

Ví dụ - 2:

Chạy lệnh sau để tìm kiếm các dòng đó từ list.txt tệp kết thúc bằng số năm mươi .

$ grep 50 $ list.txt

Dấu ngoặc nhọn - ({})

‘{}’ có thể được sử dụng để so khớp các tên tệp với nhiều hơn một mẫu hình cầu. Mỗi mẫu được phân tách bằng dấu ‘,’ trong dấu ngoặc nhọn mà không có bất kỳ khoảng trắng nào. Một số ví dụ được đưa ra dưới đây.

Ví dụ 1:

Chạy lệnh sau để tìm kiếm những tệp có tên dài 5 ký tự và phần mở rộng là 'NS' hoặc hai ký tự cuối cùng của tệp là 'NS' và phần mở rộng là ‘Txt’ .

$ ls -l {?????. sh, * st.txt}

Ví dụ - 2:

Chạy lệnh sau để xóa tất cả các tệp có phần mở rộng là ‘Doc’ hoặc ‘docx’ .

$rm {*.doc,*.docx}

Ống– (|)

Dấu ‘|’ cũng được sử dụng để áp dụng nhiều hơn một điều kiện trên mẫu hình cầu. Mỗi mẫu được phân tách bằng ký hiệu ‘|’ trong lệnh.

Ví dụ 1:

Chạy lệnh sau để tìm kiếm những tên tệp bắt đầu bằng ký tự ‘a’ và có phần mở rộng là ‘bash’ hoặc ‘sh’.

$lsđến*+(.bash|.NS)

Ví dụ - 2:

Tạo một tệp bash có tên ‘Menu.bash’ và thêm tập lệnh sau. Nếu người dùng gõ 1 hoặc S sau đó nó sẽ in Tìm kiếm văn bản . Nếu người dùng gõ 2 hoặc R sau đó nó sẽ in Thay thế văn bản . Nếu người dùng gõ 3 hoặc D sau đó nó sẽ in Xóa văn bản . Nó sẽ in Thử lại cho bất kỳ đầu vào nào khác.

#! / bin / bash
quăng đi 'Chọn bất kỳ tùy chọn nào từ menu:'
đọcbài giải
trường hợp $ câu trả lời trong
1 |NS) quăng đi 'Tìm kiếm văn bản';;
2 |NS) quăng đi 'Thay thế văn bản';;
3 |NS) quăng đi 'Xóa văn bản';;
*) quăng đi 'Thử lại.';;
esac

Chạy tập lệnh.

$bấu víumenu.bash

PHẦN KẾT LUẬN

Một số mô hình cầu vồng được sử dụng phổ biến nhất được giải thích trong hướng dẫn này bằng cách sử dụng các ví dụ rất đơn giản. Tôi hy vọng sau khi thực hành các ví dụ trên, bạn sẽ hiểu rõ khái niệm về cầu vồng và bạn sẽ có thể áp dụng nó trong các lệnh và tập lệnh bash thành công.

Để biết thêm thông tin, hãy xem video này: