Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
711,23 KB
Nội dung
TRƯỜNG ĐẠI HỌC SÀI GỊN CHƯƠNG 8: LẬP TRÌNH SHELL NÂNG CAO GV: LƯƠNG MINH HUẤN NỘI DUNG I List II Hàm III Buildin command IV Mảng V Xử lý file I LIST Kết nối lệnh lại với thực kiểm tra trước đưa định • AND • OR I LIST Ví dụ: xem xét chương trình sau: Ta dùng AND để thay cho nhiều câu lệnh if I LIST Ví dụ: xem xét chương trình sau: Ta sử dụng OR để thay nhiều câu lệnh if I LIST AND (&&) Thực thi chuỗi lệnh kề nhau, lệnh sau thực lệnh trước thực thi trả kết thành công Cú pháp: Statement1 && Statement2 &&… && Statementn Kết AND trả true tất Statement thực thi I LIST Ví dụ: Kết quả: hello in else I LIST OR (||) Thực thi chuỗi lệnh kề nhau, có lệnh trả true việc thực thi ngừng lại (lệnh sau thực lệnh trước false) Cú pháp: Statement1 || Statement2 ||… || Statementn Kết OR trả true Statement trả true I LIST Ví dụ: Kết quả: hello in if I LIST Ta kết hợp AND OR để xử lý vấn đề logic lập trình: V XỬ LÝ TRÊN FILE Nhập liệu vào cuối file: V XỬ LÝ TRÊN FILE Xuất liệu từ file V XỬ LÝ TRÊN FILE awk: xử lý chuỗi awk là công cụ thiết kế để làm việc với dịng liệu Nó làm việc trên nhiều cột nhiều dịng dịng dữ liệu Nó hỗ trợ nhiều chức có sẵn, mảng hàm, ngơn ngữ lập trình C Lợi lớn tính linh hoạt Cấu trúc kịch bản awk có dạng sau: V XỬ LÝ TRÊN FILE kịch bản awk thường bao gồm phần: BEGIN{ commands } => chứa khai báo thực thi trước khi awk đọc nội dung liệu pattern { commands } => gồm có pattern (các điều kiện) dùng để lọc nội dung dịng liệu và { commands } là khai báo thực thi dòng trùng khớp với pattern END{ commands } => chứa khai báo thực thi sau khi awk đọc xong nội dung liệu V XỬ LÝ TRÊN FILE Ký tự đặc biệt • FS: ký tự phân cách cột • RS: ký tự phân cách dịng • NR: tổng số dịng có file V XỬ LÝ TRÊN FILE $ awk '{ print $1 }' /etc/passwd $ awk '{ print "" }' /etc/passwd $ awk '{ print "hiya" }' /etc/passwd $ awk -F":" '{ print $1 $3 }' /etc/passwd $ awk -F":" '{ print "username: " $1 "\t\tuid:" $3" }' /etc/passwd V XỬ LÝ TRÊN FILE VD: User.sh while read line data=`echo $line | awk 'BEGIN{FS="-"}{print $1}'` if [ "$data" = “ABC" ] then echo $line | cut -d- -f2 break fi done < user.txt V XỬ LÝ TRÊN FILE user.txt ABC-Nguyen Van A DEF-Le Thi B XYZ-Tran Van C V XỬ LÝ TRÊN FILE Xử lý dòng file V XỬ LÝ TRÊN FILE Câu lệnh sed sed công cụ mạnh mẽ Linux giúp thực thao tác với văn tìm kiếm, chỉnh sửa, xóa Khác với text editor thông thường, sed chấp nhận văn đầu vào nội dung từ file có hệ thống từ standard input hay stdin Cú pháp: V XỬ LÝ TRÊN FILE Mặc định, sed chỉ in văn thay Để lưu thay đổi vào tập tin, sử dụng tùy chọn -i Hoặc chuyển hướng vào file khác: V XỬ LÝ TRÊN FILE Nếu sử dụng cú pháp đề cập trên, sed sẽ thay xuất hiện đầu tiên mẫu (pattern) dòng Nếu muốn thay tất xuất của mẫu văn bản, cần thêm tham số g vào cuối sau: V XỬ LÝ TRÊN FILE Nếu muốn thay xuất thứ N mẫu văn bản, sử dụng dạng /N như sau: V XỬ LÝ TRÊN FILE Xóa dịng trống kỹ thuật đơn giản với việc sử dụng sed Các khoảng trống đối chiếu với biểu thức quy ^$: BÀI TẬP Cho người dùng nhập nội dùng vào file Xuất file Thay từ file Thêm dòng vị trí file Kiểm tra file có ký tự số nào? ... Hoặc IV MẢNG Ví dụ: in chiều dài mảng: V XỬ LÝ TRÊN FILE Nhập liệu vào cuối file: V XỬ LÝ TRÊN FILE Xuất liệu từ file V XỬ LÝ TRÊN FILE awk: xử lý chuỗi awk là công cụ thiết kế để làm... Xử lý file I LIST Kết nối lệnh lại với thực kiểm tra trước đưa định • AND • OR I LIST Ví dụ: xem xét chương trình sau: Ta dùng AND để thay cho nhiều câu lệnh if I LIST Ví dụ: xem xét chương. .. XỬ LÝ TRÊN FILE user.txt ABC-Nguyen Van A DEF-Le Thi B XYZ-Tran Van C V XỬ LÝ TRÊN FILE Xử lý dòng file V XỬ LÝ TRÊN FILE Câu lệnh sed sed công cụ mạnh mẽ Linux giúp thực thao tác với