DEV Community

Cover image for Practical awk Commands Every Tech Pro Should Know
Alexand
Alexand

Posted on

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
Enter fullscreen mode Exit fullscreen mode

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}'
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
  • This command counts the total number of lines in a file.

    • Sum a Column of Numbers
   awk '{sum += $1} END {print sum}' file
Enter fullscreen mode Exit fullscreen mode
  • 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!


Top comments (0)