Monday, September 24, 2018

Tìm hiểu về câu lệnh sed và awk từ cơ bản đến nâng cao

Nguồn tài liệu tham khảo: Sách "sed and awk" quyển thứ hai của 2 tác giả «Dale Dougherty and Arnold Robbins«.
Bài viết gồm 3 phần cơ bản như sau:
1. Lệnh sed và awk cơ bản.
2. Tìm hiểu nâng cao.
3. Trở thành master về sed và awk.

1. Lệnh sed và awk cơ bản. 
Làm thế nào để dùng nhiều lệnh sed trên một dòng lệnh dưới đây là 3 cách cơ bản bạn có thể làm :
+ sed  's/MA/MB/; s/MC/MD/' tên_file
+ sed -e 's/MA/MB/' -e 's/MA/MB/' Ten_file
+ sed '
>s/MA/MB/
>s/MC/MD/' ten_file
Trong các câu lệnh trên bạn đang muốn thay thế MA bằng MB và MC bằng MD trong cùng một dòng lệnh . Như vậy tất cả văn bản chứa trong ten_file sẽ được in ra màn hình.  Trong một vài trường hợp bạn chỉ cần in ra những dòng có chứa kí tự cần thay thế bạn có thể thêm option -n cho câu lệnh.
Ví dụ:
sed -n -e 's/MA/MB/' ten_file
Các dòng chứa MA sẽ được thay thế bởi MB và được in ra màn hình.
Bạn đang có 1 file chỉ chứa toàn các câu lệnh thực thi ví dụ như :
s/MA/MB
s/MC/MD
.....
Vậy làm thế nào bạn thực thi hết toàn bộ các câu lệnh này.  Cách đơn giản nhất là bạn invoke nó bằng một câu lệnh khác.  Và sed, awk hoàn toàn hổ trợ việc này.
sed -f ten_file_script ten_file
Tương tự cho câu lệnh awk:
awk -f ten_file_script ten_file
Trong đó tên file_file_script là file chứa script bạn muốn thực thi còn ten_file là file input đầu vào của bạn.
Dưới đây là một số câu lệnh awk cơ bản cho một số bạn mới bắt đầu nhé
awk '(print $1)' list -> in các từ đầu tiên của tất cả các dòng trong file list.
awk '/MA/' list -> in các dòng có chứa kí tự MA trong file list ra.
awk '/MA/ (print $1)' list ->  in từ đầu tiên của tất cả các dòng chứa kí tự MA ra màn hình.
awk -F,  '/MA/ (print $1)' list -> in phần tử đầu tiên được phân tách với phần tử thứ 2 bằng dấu "," của tất cả các dòng chứa cụm MA ra màn hình.
awk -F,  '/MA/ (print $1;print $2;print $3)' list -> tương tự câu lệnh trên nhưng in nhiều phần tử 1,2,3 ra màn hình.

No comments:

Post a Comment

Cách tính BW và latency trong 1 hệ thống SoC sử dụng chuẩn giao tiếp AXI protocol

Tác giả:  TrongTran Ngày:  31/12/2019 Nếu bạn nào đang làm về verification cho system performance (ST) thì bài này sẽ bổ ích cho bạn. Ngày ...