Sắp xếp dữ liệu: sort

Một phần của tài liệu ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC THỰC HÀNH LINUX (Trang 56 - 57)

4. Lọc (Filters)

4.3.1. Sắp xếp dữ liệu: sort

Lệnh sort giúp sắp xếp dữ liệu theo từng trường, có thể là một hoặc nhiều trường. Cú pháp của nó như sau:

$ sort -t:ký_tự_phân_cách_trường tuỳ_chọn tên_file_dữ_liệu

Ký tự phân cách giữa các trường có thểđược quy định khác nhau tuỳ theo khuôn dạng dữ liệu, mặc định là ký tự trống. Các tuỳ chọn của lệnh sort như sau:

-k i,j chỉ ra dữ liệu sắp xếp là dãy ký tự kéo dài từ trường i đến hết trường j -n chỉđịnh trường dữ liệu là kiểu số

-r sắp xếp theo thứ tự ngược lại (giảm dần)

-M chỉđịnh trường dữ liệu là kiểu tháng (‘JAN’ < ‘FEB’ ... < ‘DEC’)

Chú ý: Khi sắp xếp, sort sẽ coi mỗi giá trị dữ liệu là một xâu ký tự và do đó phép so sánh được thực hiện theo thứ tự từđiển. Nếu trường dữ liệu sắp xếp là số thì bạn cần chỉđịnh rõ bằng tuỳ chọn –n, nếu không các số sẽđược coi là dãy ký tự bình thường. Mặc định sort

sắp xếp theo thứ tự tăng dần, nếu muốn ngược lại cần dùng tuỳ chọn –r. Để thể hiện sắp xếp theo trường thứ m, bạn cần viết –k m,m.

Ví dụ:

$ sort –t: -k 2,2 mydata

Lệnh trên sắp xếp dữ liệu trong file mydata theo trường thứ 2, dấu phân cách trường là (:) và sắp xếp tăng dần.

$ sort –t: -k 3,3M babies

Lệnh trên sắp xếp dữ liệu theo trường thứ 3 có kiểu tháng. Ví dụ:

$ sort –t: -k 1,1 -k 5,5n myfile

Lệnh trên sắp xếp dữ liệu theo trường thứ nhất, nếu gặp hai bản ghi có giá trị trường giống nhau thì sẽ sắp xếp theo trường thứ năm có kiểu số.

Một phần của tài liệu ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC THỰC HÀNH LINUX (Trang 56 - 57)