GIÁO TRÌNH HỆ ĐIỀU HÀNH UNIX - LINUX - Trang 82

8
1

Ví dụ, giả sử bây giờ muốn tìm các dòng có chứa một hoặc nhiều hơn ký tự b trên file

passwk với lệnh egrep.

# egrep 'b+' /etc/passwd | head

cho ra các dòng kết quả sau:

root : x : 0 : 0 : root : /root : /bin/bash
bin : x : 1 : 1 : bin : /bin :
daemon : x : 2 : 2 : daemon : /sbin :
sync : x : 5 : 0 : sync : /sbin : /bin/sync
shutdown : x : 6 : 0 : shutdown : /sbin : /sbin/shutdown
halt : x : 7 : 0 : halt : /sbin : /sbin/halt
gopher : x : 13 : 30 : gopher : /usr/lib/gopher-data :
nobody : x : 99 : 99 : Nobody : / :
xfs : x : 43 : 43 : X Font Server : /etc/X11/fs : /bin/false
named : x : 25 : 25 : Named : /var/named : /bin/false

Khi gõ lệnh:

# egrep '([^a-zA-Z] | :wi)' /etc/printcap | head

thì nhận được thông báo kết quả:

aglw:Ư\

:wi=AG 23 : wk=multiple Apple LaserWrite IINT:

aglw1:\

:wi=AG 23 : wk=Apple LaserWrite IINT:

Ký hiu

Ý nghĩa

c
\c
^
$
.
[xy]
[^xy]
c*
c+
c?
a | b
(a)

- thay thế cho ký tự c
- hiển thị c như là một ký tự bình thường nếu c là một ký tự điều khiển
- bắt đầu một dòng
- kết thúc dòng
- thay cho một ký tự đơn
- chọn một ký tự trong tập hợp các ký tự được đưa ra
- chọn một ký tự không thuộc tập hợp các ký tự được đưa ra
- thay cho một mẫu có hoặc không chứa ký tự c
- thay cho một mẫu có chứa một hoặc nhiều hơn ký tự c
- thay cho một mẫu không có hoặc chỉ có chứa duy nhất một ký tự c
- hoặc là a hoặc là b
- a một biểu thức