Bird
Raised Fist0
Linux CLIscripting~5 mins

awk basics (field processing) in Linux CLI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does awk do in simple terms?

awk is a tool that reads text line by line and splits each line into parts called fields. It helps you pick and work with these parts easily.

Click to reveal answer
beginner
In awk, how do you refer to the first field of a line?

You use $1 to get the first field (like the first word) in the current line.

Click to reveal answer
beginner
What does $0 represent in awk?

$0 means the whole current line as it is, without splitting.

Click to reveal answer
beginner
How can you print the second and third fields of each line using awk?

Use awk '{print $2, $3}' filename. This prints the second and third parts of each line separated by space.

Click to reveal answer
beginner
What is the default field separator in awk?

The default separator is any space or tab. awk splits lines by spaces or tabs unless told otherwise.

Click to reveal answer
What does $3 represent in an awk command?
AThe third field of the current line
BThe whole line
CThe third line of the file
DThe number of fields in the line
Which awk variable holds the entire current line?
ANR
B$1
CFS
D$0
How does awk split fields by default?
ABy spaces or tabs
BBy commas
CBy semicolons
DBy new lines
What command prints the first and last fields of each line using awk?
Aawk '{print NF}' filename
Bawk '{print $0}' filename
Cawk '{print $1, $NF}' filename
Dawk '{print $2, $3}' filename
If a line has 5 fields, what does NF equal in awk?
A4
B5
C1
D0
Explain how awk processes a line and how you can access its parts.
Think about how a sentence breaks into words.
You got /4 concepts.
    Describe how to print specific fields from a file using awk.
    Imagine picking certain words from each line.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does $2 represent in an awk command?
      easy
      A. The number of fields in the current line
      B. The entire current line
      C. The first character of the line
      D. The second field (word) in the current line

      Solution

      1. Step 1: Understand how awk splits lines

        awk automatically splits each input line into fields separated by spaces or tabs.
      2. Step 2: Identify what $2 means

        $2 refers to the second field (word) in the current line.
      3. Final Answer:

        The second field (word) in the current line -> Option D
      4. Quick Check:

        $2 = second field [OK]
      Hint: Remember: $1 is first word, $2 second, and so on [OK]
      Common Mistakes:
      • Confusing $2 with the whole line ($0)
      • Thinking $2 is the number of fields (NF)
      • Mixing field numbers with character positions
      2. Which of the following is the correct syntax to print the third field of each line using awk?
      easy
      A. awk '{print $3}' filename
      B. awk 'print $3' filename
      C. awk '{print 3}' filename
      D. awk '{print $}' filename

      Solution

      1. Step 1: Recall the basic awk print syntax

        The print statement must be inside braces: {print $3}.
      2. Step 2: Check each option

        awk '{print $3}' filename uses correct braces and $3. Options B, C, and D have syntax errors or wrong usage.
      3. Final Answer:

        awk '{print $3}' filename -> Option A
      4. Quick Check:

        Print field 3 with braces [OK]
      Hint: Always use braces { } around print commands in awk [OK]
      Common Mistakes:
      • Omitting braces around print statement
      • Printing a number instead of a field variable
      • Using incomplete or invalid field syntax
      3. Given a file data.txt with the following content:
      apple 10 red
      banana 5 yellow
      cherry 20 red

      What is the output of awk '{print $1, $3}' data.txt?
      medium
      A. apple red banana yellow cherry red
      B. apple banana cherry
      C. 10 red 5 yellow 20 red
      D. apple 10 banana 5 cherry 20

      Solution

      1. Step 1: Identify fields in each line

        Each line has three fields: $1=fruit, $2=number, $3=color.
      2. Step 2: Understand the print command

        awk '{print $1, $3}' prints the first and third fields separated by space.
      3. Final Answer:

        apple red banana yellow cherry red -> Option A
      4. Quick Check:

        Print first and third fields [OK]
      Hint: Match $1, $2, $3 to columns in order [OK]
      Common Mistakes:
      • Mixing up field numbers
      • Printing wrong fields or all fields
      • Ignoring spaces between printed fields
      4. What is wrong with this command: awk '{print $4}' data.txt if data.txt has only 3 fields per line?
      medium
      A. It prints the third field instead
      B. It causes a syntax error
      C. It prints an empty line for each input line
      D. It prints the entire line

      Solution

      1. Step 1: Understand field numbering in awk

        Fields are numbered from 1 to NF (number of fields). If $4 is requested but only 3 fields exist, $4 is empty.
      2. Step 2: Predict output behavior

        Printing $4 prints nothing, resulting in empty lines for each input line.
      3. Final Answer:

        It prints an empty line for each input line -> Option C
      4. Quick Check:

        Missing field prints empty [OK]
      Hint: Fields beyond NF print empty, no error [OK]
      Common Mistakes:
      • Expecting syntax error for missing fields
      • Thinking it prints last field instead
      • Assuming it prints whole line if field missing
      5. You want to print only the lines from file.txt where the second field is greater than 100 using awk. Which command achieves this?
      hard
      A. awk '{if $2 > 100 print $0}' file.txt
      B. awk '$2 > 100 {print $0}' file.txt
      C. awk '{print $0 if $2 > 100}' file.txt
      D. awk '$2 => 100 {print $0}' file.txt

      Solution

      1. Step 1: Understand condition syntax in awk

        Conditions go before the action block. The correct comparison operator is >, not =>.
      2. Step 2: Check each option

        awk '$2 > 100 {print $0}' file.txt uses correct syntax: $2 > 100 {print $0}. awk '{if $2 > 100 print $0}' file.txt misses parentheses and braces. awk '{print $0 if $2 > 100}' file.txt has wrong syntax. awk '$2 => 100 {print $0}' file.txt uses invalid operator =>.
      3. Final Answer:

        awk '$2 > 100 {print $0}' file.txt -> Option B
      4. Quick Check:

        Condition before action, use > operator [OK]
      Hint: Put condition before braces, use > not => [OK]
      Common Mistakes:
      • Using invalid comparison operators like =>
      • Placing if inside braces without parentheses
      • Omitting braces or condition syntax errors
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard