Sử dụng lệnh awk trên Unix
Unix
31
White

Trần Thành viết ngày 27/05/2015

Chuẩn bị

Dưới đây là tổng hợp cách dùng câu lệnh awk trên linux.
Trong các ví dụ, câu lệnh dùng trước awk là một câu lệnh grep thông thường

grep -n 'Chrome' access_log

Edit:
Trước khi thực hành các ví dụ dưới đây, để bắt buộc grep chạy trong chế độ line buffered trước khi pipe vào awk cần câu lệnh sau

stdbuf -oL command

Vấn đề về line buffered trong pipe bạn có thể đọc kỹ hơn ở bài viết giải thích stdio buffer

Cách dùng cụ thể

  • In ra cột chỉ định của kết quả

    grep -n 'Chrome' access_log | awk '{print $0}'
    # In ra cột $0
    grep -n 'Chrome' access_log | awk '{print $1 $3}'
    # In ra cột $1 và $3
    
  • Thay đổi ký tự ngắt cột

    grep -n 'Chrome' access_log | awk -F "," '{print $3}'
    # Ở đây ký tự ngắt đã trở thành dấu ,
    
  • Lược bỏ một loạt cột chỉ định trong kết quả

    grep -n 'Chrome' access_log | awk '{$1=$2=""; print $0}'
    # Ở đây cột $1 và $2 đã được loại bỏ
    
  • In ra cột chỉ định theo phạm vi

    grep -n 'Chrome' access_log | awk -v f=3 -v t=7 '{for(i=f;i<=t;i++) printf("%s%s",$i,(i==t)?"\n":OFS)}' 
    # Ở đây in ra cột từ 3 đến 7
    
  • In ra cột ở ngoài phạm vi

    grep -n 'Chrome' access_log | awk -v f=3 -v t=7 '{for(i=1;i<=NF;i++)if(i>=f&&i<=t)continue;else printf("%s%s",$i,(i!=NF)?OFS:ORS)}'
    # Ở đây in ra các cột ngoại trừ các cột từ 3 đến 7
    

Sử dụng thành thạo những câu lệnh trên đây cũng đã giúp ích khá nhiều khi làm các tác vụ liên quan đến file log trên unix.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Trần Thành

6 bài viết.
32 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
16 8
GET request curl để thực hiện một GET request thì thật đơn giản bash $ curl http://google.com POST request giả lập form curl để thực hiện PO...
Trần Thành viết hơn 2 năm trước
16 8
White
13 8
Tạo một lúc nhiều file hay directory Tạo một lúc nhiều directory với mkdir và dấu {} bash mkdir {log_1,log_2,log_3} (Ảnh) Tạo một lúc nhiều fi...
Trần Thành viết gần 3 năm trước
13 8
White
9 1
Peco Hôm trước tôi có thấy một bạn cũng hướng dẫn cài đặt và sử dụng peco trên Kipalog ở (Link). Vì vậy phần cài đặt thì các bạn có thể tham khảo ...
Trần Thành viết gần 3 năm trước
9 1
Bài viết liên quan
White
1 0
Sử dụng option I với xargs Với option I thì bạn có thể sử dụng place holder với biến được lấy ra từ xargs man của option này: I replacestr R...
LinhPT viết gần 2 năm trước
1 0
White
45 1
Chương 1. Tổng quan một hệ thống Linux Thiên chúa thấy mọi sự người đã làm, và thấy rằng nó đuợc làm rất tốt. Bible King James Version. Genesis 1:3...
Trần Đạt viết hơn 1 năm trước
45 1
White
17 1
Chương 2. Tổng quan về cây thư mục Chương này mô tả các phần quan trọng của cây thư mục trong Linux , dựa trên Tiêu chuẩn phân cấp cây thư mục Fil...
Trần Đạt viết hơn 1 năm trước
17 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
32 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!