Practical awk Commands Every Tech Pro Should Know

In Linux and DevOps, awk is a simple and powerful tool for working with data. You can use it to pick out specific parts of a file or process outputs from commands. It’s a handy utility that gets the job done. Let’s explore why awk is so useful and look at some easy-to-use commands! What is awk? awk is both a utility and a programming language designed for text processing. It’s perfect for extracting, filtering, and formatting data. Think of it as a Swiss Army knife for handling structured text. Essential awk Commands Check the Version awk --version Use this to confirm the version of awk installed on your system. Print Specific Fields Extract the first field from a file: awk '{print $1}' file List the first and third fields from ls -l output: ls -l | awk '{print $1, $3}' Print the Last Field ls -l | awk '{print $NF}' This command grabs the last field from the output. Search for Patterns Print lines containing "Jerry": awk '/Jerry/ {print}' file Change Field Separator Extract the first field from /etc/passwd (colon-separated file): awk -F: '{print $1}' /etc/passwd Replace Words or Fields Replace the second word in a string: echo "Hello Tom" | awk '{$2="Adam"; print $0}' Conditional Printing Print lines where the 8th field equals "Seinfeld": ls -l | awk '{if($8 == "Seinfeld") print $0;}' Advanced awk Commands Count Lines in a File awk 'END {print NR}' file This command counts the total number of lines in a file. Sum a Column of Numbers awk '{sum += $1} END {print sum}' file Add up all the numbers in the first column of a file. Print Line Numbers awk '{print NR, $0}' file This adds line numbers to each line of the file. Delete Empty Lines awk 'NF > 0' file Remove all blank lines from a file. Find Longest Line awk '{if (length($0) > max) max = length($0)} END {print max}' file Identify the longest line in a file based on character count. Filter Rows by Range awk 'NR >= 5 && NR

Apr 13, 2025 - 07:39
 0
Practical awk Commands Every Tech Pro Should Know

In Linux and DevOps, awk is a simple and powerful tool for working with data. You can use it to pick out specific parts of a file or process outputs from commands. It’s a handy utility that gets the job done. Let’s explore why awk is so useful and look at some easy-to-use commands!

What is awk?

awk is both a utility and a programming language designed for text processing. It’s perfect for extracting, filtering, and formatting data. Think of it as a Swiss Army knife for handling structured text.

Essential awk Commands

  • Check the Version
   awk --version

Use this to confirm the version of awk installed on your system.

  • Print Specific Fields

    • Extract the first field from a file:
     awk '{print $1}' file
    
    • List the first and third fields from ls -l output:
     ls -l | awk '{print $1, $3}'
    
  • Print the Last Field

   ls -l | awk '{print $NF}'

This command grabs the last field from the output.

  • Search for Patterns

    • Print lines containing "Jerry":
     awk '/Jerry/ {print}' file
    
  • Change Field Separator

    • Extract the first field from /etc/passwd (colon-separated file):
     awk -F: '{print $1}' /etc/passwd
    
  • Replace Words or Fields

    • Replace the second word in a string:
     echo "Hello Tom" | awk '{$2="Adam"; print $0}'
    
  • Conditional Printing

    • Print lines where the 8th field equals "Seinfeld":
     ls -l | awk '{if($8 == "Seinfeld") print $0;}'
    

Advanced awk Commands

  • Count Lines in a File
   awk 'END {print NR}' file
  • This command counts the total number of lines in a file.

    • Sum a Column of Numbers
   awk '{sum += $1} END {print sum}' file
  • Add up all the numbers in the first column of a file.

    • Print Line Numbers
    awk '{print NR, $0}' file
    
    • This adds line numbers to each line of the file.
    • Delete Empty Lines
    awk 'NF > 0' file
    
    • Remove all blank lines from a file.
    • Find Longest Line
    awk '{if (length($0) > max) max = length($0)} END {print max}' file
    
    • Identify the longest line in a file based on character count.
    • Filter Rows by Range
    awk 'NR >= 5 && NR <= 10' file
    
    • Print lines 5 through 10 from a file.
    • Print Unique Values
    awk '!seen[$0]++' file
    
    • Remove duplicate lines from a file.

Why Use awk?

awk is lightweight, versatile, and incredibly efficient for text processing tasks. Whether you’re a DevOps engineer, a Linux enthusiast, or just someone who loves the command line, mastering awk can save you time and effort.

Take home message

awk is more than just a utility—it’s a gateway to smarter, faster data handling. Start with the basics, experiment with the commands above, and soon you’ll be crafting your own one-liners like a pro.

What’s your favorite awk trick? Share it in the comments—I’d love to hear how you use this powerful tool!