20/01/2011 Hệ Điều Hành Unix/Linux 2 Trong Linux hiện có rất nhiều các Text Editors khác nhau giúp cho việc soạn thảo text, như: vi visual editor emacs và xemacs jed joe Trong do b
Trang 120/01/2011 Hệ Điều Hành Unix/Linux 1
Xử lý văn bản và các bộ lọc
Bài 5
Trang 220/01/2011 Hệ Điều Hành Unix/Linux 2
Trong Linux hiện có rất nhiều các Text Editors khác
nhau giúp cho việc soạn thảo text, như:
vi (visual editor)
emacs và xemacs
jed
joe
Trong do bộ soạn thảo vi là bộ soạn thảo mặc định của các bản phân phối Linux và Unix.
Để tạo một file mới với vi dùng lệnh với cú pháp:
vi [options] [filename]
Các công cụ soạn thảo văn bản
Trang 320/01/2011 Hệ Điều Hành Unix/Linux 3
Chế độ lệnh
Cho phép nhập lệnh xóa, thay đổi, sao chép và di chuyển text, vị trí con trỏ,
Chế độ soạn thảo
Cho phép nhập và hiệu chỉnh văn bản vào file
Để chỉ dẫn vi vào chế độ soạn thảo, nhập một trong 3 lệnh sau: i (insert), o (open), a (append).
Chế độ dòng cuối
Trong khi ở chế độ lệnh, gõ dấu hai chấm (:) sẽ vào chế
độ dòng cuối Cho phép lưu file, mở file, tìm kiếm, hoặc thoát khỏi vi,…
Các chế độ làm việc của vi
Trang 420/01/2011 Hệ Điều Hành Unix/Linux 4
Các chế độ làm việc của vi
Start
End
Trang 520/01/2011 Hệ Điều Hành Unix/Linux 5
Một số lệnh dùng vi
Trang 620/01/2011 Hệ Điều Hành Unix/Linux 6
Một số lệnh dùng vi
dd : Xóa 1 dòng
<n>dd : Xóa n dòng
y : sao chép 1 dòng
p : Dán (paste) ra dòng hiện hành
dw : xóa 1 từ
:r <file>: mở 1 file mới
:r !<command> : lấy kết qủa một lệnh shell đưa vào vi.
Trang 720/01/2011 Hệ Điều Hành Unix/Linux 7
Pipes (đường ống)
Pipes cho phép kết hợp nhiều lệnh và xử lý
chúng như một lệnh
Ví dụ: $ ls –l /dev | more
Pipes được biểu diễn bởi dấu gạch đứng (|), cái cho biết shell lấy kết quả của câu lệnh trước ‘|’ và gửi chúng như dữ liệu vào cho câu lệnh sau ‘|’
Trang 820/01/2011 Hệ Điều Hành Unix/Linux 8
Các ví dụ
Xem tên đầy đủ của user steve cùng với đường dẫn, thư mục chủ và shell mặc định:
$ cat /etc/passwd | grep "^steve:" | cut -d ':' -f5,6,7
Hiển thị ngày của tuần:
$ date | cut -d ' ' -f1
Lệnh hiển thị tên các user và thời gian họ đăng nhập:
$ who | tr -s ' ' | cut -d ' ' -f1,4
Trang 920/01/2011 Hệ Điều Hành Unix/Linux 9
Filters
Bộ lọc (filter) là một chương trình lấy dữ liệu vào
từ thiết bị nhập, xử lý (hoặc lọc) nó và gửi kết
quả đến thiết bị xuất
Một số bộ lọc là:
grep
wc
tr
cut
Trang 1020/01/2011 Hệ Điều Hành Unix/Linux 10
Bộ lọc grep
GREP (Stands for Global Regular Expression
Print)
Tìm kiếm trong một file theo một mẫu các ký tự
và hiển thị tất cả các dòng chứa mẫu đó Mẫu để
tìm kiếm được gọi là biểu thức chính qui (regular
expression).
Cú pháp:
grep [options] pattern [filename]
Trang 1120/01/2011 Hệ Điều Hành Unix/Linux 11
Biểu thức chính qui (mẫu lọc)
Biểu thức chính qui có thể được sử dụng để xác định
mẫu ký tự phức tạp.
Để xác định biểu thức chính qui phức tạp như, [ ], [ ] với
^, ^ trong [ ], $, (dấu chấm),và \
Ví dụ:
grep "New[abc]“ : Tìm dòng chứa Newa, Newb hoặc Newc
grep "New[ac]“: Tìm dòng chứa Newa hoặc Newc
grep "^New[ab]“: Tìm dòng chứa Newa hoặc Newb ở đầu dòng.
grep "New[ab]$“: Tìm dòng chứa Newa hoặc Newb ở cuối dòng.
grep "New\[ab\]“: Tìm dòng chứa New[a] hoặc New[b]
Trang 1220/01/2011 Hệ Điều Hành Unix/Linux 12
Ví dụ
Ta có file test với nội dung như sau:
Cho biết kết quả các lệnh sau:
$ grep "J[oa]" test
$ grep "^Jo" test
$ grep "Steve$" test
Trang 1320/01/2011 Hệ Điều Hành Unix/Linux 13
Bộ lọc wc
Bộ lọc wc được sử dụng để đếm số dòng, số từ,
và số ký tự trong một file hoặc từ thiết bị nhập
Cú pháp:
wc [option] [filename]
Một số tùy chọn của wc:
-l: hiển thị số dòng
-w: hiển thị số từ
-c: hiển thị số ký tự
Trang 1420/01/2011 Hệ Điều Hành Unix/Linux 14
Bộ lọc cut
Bộ lọc cut được sử dụng khi xác định các cột từ kết quả của một câu lệnh (như ls, who) hoặc một file trên đĩa cần được trích ra
Cú pháp:
cut [options] [filename]
Một số tùy chọn của cut:
-f<column(s)>: Hiển thị cột xác định
-c<character(s)>: Hiển thị ký tự xác định
-d<delimiter> : xác định dấu phân cách cột
Ví dụ:
$ cut -d ':' -f1 /etc/passwd
Trang 1520/01/2011 Hệ Điều Hành Unix/Linux 15
Bộ lọc tr
Bộ lọc tr có thể được sử dụng để chuyển đổi tập
ký tự này thành tập ký tự khác
Nó cũng có thể được dùng để nén các ký tự lặp lại thành một ký tự với tùy chọn –s
Ví dụ:
$ who > dslogin
$ tr -s " " < dslogin
root tty1 Sep 28 17:02
steve pts/4 Sep 28 19:36 (172.17.55.167)
Trang 1620/01/2011 Hệ Điều Hành Unix/Linux 16
Các ví dụ sử dụng tr
Sử dụng phổ biến của tr cho phép chuyển đổi
hoa-thường
Ví dụ 1:
$ tr "[a-z]" "[A-Z]" <danhsach.txt
Nguyen Van An
NGUYEN VAN AN
Ví dụ 2: đổi ký tự “:” thành khoảng trắng
$ tr ':' ' ' < /etc/passwd
Trang 1720/01/2011 Hệ Điều Hành Unix/Linux 17
Bộ lọc sort
Sắp xếp mỗi dòng từ file hoặc thiết bị nhập theo thứ tự tăng dần
Các tùy chọn của bộ lọc sort:
-r: sắp xếp giảm dần
-n: Sắp xếp tăng dần
-k<col> -t<deli>
Ví dụ: $sort –r -k2 –t’:’ test.txt
Trang 1820/01/2011 Hệ Điều Hành Unix/Linux 18
Tóm lại
Soạn thảo văn bản
Pipe
Bộ lọc
Thanks you !