Một số công cụ đƣợc tích hợp trong Linux

Một phần của tài liệu Nghiên cứu khả năng tương tác với mạng thực của bộ mô phỏng NS-2 (Trang 65)

Chạy chương trình mô phỏng sẽ cho ta một tệp dữ liệu lớn dưới dạng tệp tin vết, ghi lại các sự kiện của các gói tin trên đường truyền. Do đó, người nghiên cứu cần phải phân tích tệp dữ liệu kết quả mô phỏng mới có thể thu thập được các độ đo theo mục đích nghiên cứu, công việc này có thể được thực hiện bởi sự trợ giúp của một số công cụ có sẵn trong Linux hoặc ta có thể tự viết lấy. Một số công cụ hỗ trợ phân tích kết quả mô phỏng có sẵn trong LINUX thường được sử dụng như cat, grep, awk, ...

Bởi vì, các tệp tin vết mô phỏng (được trình bày ở mục 3.4.1) được lưu trữ dưới dạng các dòng, mỗi dòng là một chuỗi ký tự tướng ứng với một sự kiện của gói tin. Nên ở đây, chúng tôi chỉ trình bày các lệnh nhằm vào việc xử lý các tệp vết loại này.

Lệnh cat

Lệnh cat dùng để đọc một hay nhiều tệp tin và xuất ra các thiết bị xuất chuẩn như file hay màn hình.

Cú pháp: cat <file1> <file2> ... <fileN> [>filename]

Trong trường hợp không chỉ định rõ thiết bị xuất [>filename] thì lệnh cat sẽ xuất kết quả ra màn hình.

Trong phân tích kết quả mô phỏng, người ta thường dùng lệnh cat để sao chép, trích lọc dữ liệu bằng cách kết hợp với một số lệnh khác như grep, awk,...

Lệnh grep

Grep là một lệnh trong Unix|Linux, là thuật ngữ viết tắt của: “Global Regular Expression Parser”. Grep là một bộ lọc, nó tìm và hiển thị các dòng trong input có chứa mẫu ký tự (pattern) mà người sử dụng chỉ ra. Có 2 cách chính để sử dụng grep:

Cách 1: lọc output của một chương trình khác. Cú pháp như sau: <command> | grep <pattern>.

Thí dụ 1, giả sử chúng ta có tệp tin kết quả mô phỏng là out.tr, có dạng như Hình 3.8. Chúng ta cần lọc ra các sự kiện (các dòng) nhận gói tin được gửi từ node 2 đến node 0, với kích thước gói tin là 1492. Chúng ta thực hiện như sau:

cat out.tr |grep " 2 0 " |grep ^r| grep " 1942 "

Lệnh grep ^r nhằm lọc các dòng có sự kiện (event) là r (receive). Cách 2: lọc file. Cú pháp như sau: grep <pattern> <filename>.

Thí dụ 2, thực hiện lọc với yêu cầu như thí dụ 1, ta thực hiện như sau: grep " 2 0 " |grep ^r| grep " 1942 " out.tr

Mặc định, các lệnh trên lọc và in kết quả ra màn hình. Trong trường hợp muốn in kết quả ra tệp tin thì cần chỉ ra tên tệp theo định >filename ở cuối dòng lệnh, thí dụ:

cat out.tr |grep " 2 0 " |grep ^r| grep " 1942 " > out1.tr (1)

grep " 2 0 " |grep ^r| grep " 1942 " out.tr > out1.tr (2)

Kết quả của hai lệnh trên là giống nhau, tuy nhiên, cách thức làm việc là khác nhau. Cụ thể, lệnh (2) lọc dữ liệu trực tiếp từ trong file out.tr, còn lệnh (1) lọc từ kết quả trả về của lệnh cat.

Lệnh awk

AWK là một ngôn ngữ lập trình được sáng tạo bởi ba người là Alfred Aho, Peter Weinberger, và Brian Kernighan; chữ cái đầu của tên (last name) ba người được ghép lại và đặt làm tên cho ngôn ngữ của họ.

Ngôn ngữ Awk không chỉ là một ngôn ngữ lập trình, nó còn là một công cụ cho phép tương tác theo kiểu dòng lệnh và có thể được sử dụng kết hợp với những lệnh khác như cat, grep,...

Awk được thiết kế để xử lý thông tin chứa trong file hoặc thông tin do chương trình khác đưa ra truyền cho nó theo kiểu đường ống (pipe). Các khả năng sau làm nên sức mạnh của awk:

− Hiển thị một phần hoặc toàn bộ file, có thể trích chọn để hiển thị dòng và cột theo các tiêu chuẩn được chỉ rõ.

− Có thể phân tích văn bản để tính tần suất các từ (word) v.v.

− Chuẩn bị các báo cáo đưa ra có định dạng, dựa trên các thông tin của file.

− Lọc văn bản theo một cách thức rất mạnh.

− Thực hiện tính toán trên các thông tin số trong file. Chi tiết về Awk có thể tìm thấy tại website:

http://www.gnu.org/software/gawk/manual/gawk.html

Một phần của tài liệu Nghiên cứu khả năng tương tác với mạng thực của bộ mô phỏng NS-2 (Trang 65)