No menu items!
No menu items!
More

    AWK trong Linux

    Awk là một công cụ mạnh mẽ trong Linux được sử dụng để xử lý và định dạng văn bản. Awk có thể thực hiện các tác vụ như tìm kiếm, lọc, định dạng và tính toán trên dữ liệu văn bản.

    Cú pháp chung của awk là:

    awk options 'pattern {actions}' file

    Trong đó, options là các tùy chọn của awk, pattern là biểu thức để lọc các dòng phù hợp, actions là các hành động sẽ được thực hiện trên các dòng phù hợp và file là file sẽ được xử lý.

    Dưới đây là một số ví dụ về cách sử dụng awk:

    • Lọc các dòng chứa từ cụ thể trong file:
    awk '/apple/' file.txt

    Trong đó, apple là từ cần tìm kiếm và file.txt là file cần lọc.

    • Lọc các dòng có độ dài bằng 4 ký tự:
    awk 'length == 4' file.txt

    Trong đó, length là hàm trả về độ dài của dòng và file.txt là file cần lọc.

    • Hiển thị nội dung của cột cụ thể:
    awk '{print $2}' file.txt

    Trong đó, $2 là chỉ số của cột và file.txt là file cần lọc.

    • Tính tổng của một cột:
    awk '{sum += $1} END {print sum}' file.txt

    Trong đó, sum là biến lưu trữ tổng và END là vị trí cuối cùng của awk.

    • Định dạng các dòng:
    awk '{printf "%-8s %-8s %-8s\n", $1, $2, $3}' file.txt

    Trong đó, %8s là độ rộng của cột và file.txt là file cần lọc.

    Một số mẹo khi sử dụng awk:

    • Sử dụng -F để xác định ký tự phân tách giữa các cột.
    • Sử dụng biến để lưu trữ giá trị để tái sử dụng trong các hành động tiếp theo.
    • Sử dụng hàm substr để lấy một chuỗi con từ một chuỗi đã cho.
    • Sử dụng hàm tolower để đổi các ký tự thành ký tự thường.

    Dưới đây là một số tip khi sử dụng awk trong Linux:

    1. Sử dụng biến trong awk:
    • Sử dụng biến trong awk bắt đầu bằng dấu ‘$’ và tên biến nằm trong dấu ngoặc kép.
    • Ví dụ:
    awk '{if($1 >= 100) print $1}' file.txt

    Trong đó, lệnh sẽ hiển thị các giá trị cột đầu tiên lớn hơn hoặc bằng 100 trong file.txt.

    1. Sử dụng lệnh tích hợp (built-in function) của awk:
    • Awk cung cấp một số lệnh tích hợp để xử lý dữ liệu, bao gồm ‘length’, ‘substr’, ‘index’, ‘split’ và ‘sprintf’.
    • Ví dụ:
    awk '{print length($0)}' file.txt

    Lệnh trên sẽ hiển thị độ dài của mỗi dòng trong file.txt.

    1. Sử dụng awk với các tập tin CSV:
    • Awk cũng có thể sử dụng để xử lý tập tin CSV (comma-separated values).
    • Ví dụ:
    awk -F"," '{print $1 "," $3}' file.csv

    Trong đó, tùy chọn ‘-F”,”‘ sẽ chỉ định dấu phẩy ‘,’ làm phân tách giữa các trường, và lệnh sẽ hiển thị các giá trị của cột thứ nhất và thứ ba trong file.csv, được ngăn cách bằng dấu phẩy.

    5. Lấy ra các hàng (dòng) duy nhất của một file văn bản (không lặp lại):

    awk '!seen[$0]++' file.txt

    6. In ra các hàng có giá trị của một cột nằm trong một phạm vi giá trị cụ thể:

    awk '$2 >= 50 && $2 <= 100' file.txt

    7. Tính tổng giá trị của một cột:

    awk '{ sum += $1 } END { print sum }' file.txt

    8. Thay thế một chuỗi trong toàn bộ file văn bản:

    awk '{gsub(/old_string/, "new_string"); print}' file.txt

    9. Đếm số lượng hàng của file văn bản:

    awk 'END { print NR }' file.txt

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email