Bird
Raised Fist0
Linux CLIscripting~5 mins

awk patterns and actions in Linux CLI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the basic structure of an awk command using patterns and actions?
An awk command has the form: awk 'pattern { action }' filename. The pattern selects lines, and the action tells awk what to do with those lines.
Click to reveal answer
beginner
In awk, what happens if you omit the pattern but provide an action?
If the pattern is omitted, awk applies the action to every line of the input file.
Click to reveal answer
beginner
What does the pattern /error/ mean in awk?
The pattern /error/ matches any line that contains the word 'error'. It uses regular expression matching.
Click to reveal answer
beginner
How do you print the first field of each line using awk?
Use the action { print $1 }. For example: awk '{ print $1 }' filename prints the first word of each line.
Click to reveal answer
intermediate
What does the pattern-action pair NR == 3 { print } do in awk?
It prints only the third line of the input. NR is the current line number, so when NR == 3, the action print runs.
Click to reveal answer
What does this awk command do? awk '/fail/ { print $2 }' file.txt
APrints all lines containing 'fail'
BPrints the second word of lines containing 'fail'
CPrints the second line of the file
DPrints the entire file
What happens if you run awk '{ print $0 }' file.txt?
APrints lines containing 'print'
BPrints only the first word of each line
CPrints nothing
DPrints the entire file line by line
Which pattern matches lines where the first field equals 'John'?
ANR == John
B/John/
C$1 == "John"
DJohn == $0
What does this command do? awk 'NR > 5' file.txt
APrints lines after the fifth line
BPrints the first five lines
CPrints lines containing '5'
DPrints nothing
How do you print the number of fields in each line using awk?
A{ print NF }
B{ print NR }
C{ print $NF }
D{ print $0 }
Explain how awk uses patterns and actions to process text files.
Think about how you pick certain lines and then decide what to do with them.
You got /4 concepts.
    Describe how to print the third field of lines containing the word 'error' using awk.
    Combine a pattern that finds 'error' and an action that prints a specific field.
    You got /3 concepts.

      Practice

      (1/5)
      1. In awk, what does a pattern do?
      easy
      A. It selects which lines to process
      B. It changes the file content permanently
      C. It saves the output to a file
      D. It runs a shell command

      Solution

      1. Step 1: Understand the role of patterns in awk

        Patterns in awk are used to match lines in the input data. Only lines matching the pattern are processed.
      2. Step 2: Differentiate patterns from actions

        Actions define what to do with matched lines, but patterns decide which lines to select.
      3. Final Answer:

        It selects which lines to process -> Option A
      4. Quick Check:

        Pattern = line selector [OK]
      Hint: Patterns filter lines before actions run [OK]
      Common Mistakes:
      • Thinking patterns change file content
      • Confusing patterns with output commands
      • Assuming patterns run shell commands
      2. Which of these is the correct syntax to print the first field of each line using awk?
      easy
      A. awk '{print $}' file.txt
      B. awk 'print $1' file.txt
      C. awk '{print 1}' file.txt
      D. awk '{print $1}' file.txt

      Solution

      1. Step 1: Identify correct awk print syntax

        The print statement must be inside braces {} and use $1 to refer to the first field.
      2. Step 2: Check each option

        awk '{print $1}' file.txt uses correct braces and $1. awk 'print $1' file.txt misses braces. awk '{print 1}' file.txt prints number 1 literally. awk '{print $}' file.txt uses invalid $.
      3. Final Answer:

        awk '{print $1}' file.txt -> Option D
      4. Quick Check:

        Print first field = awk '{print $1}' [OK]
      Hint: Always use braces {} around actions in awk [OK]
      Common Mistakes:
      • Omitting braces around print
      • Using $ without field number
      • Printing literal numbers instead of fields
      3. What is the output of this command on a file with lines:
      1: apple 10
      2: banana 20
      3: cherry 30

      awk '$2 > 15 {print $1}' file.txt?
      medium
      A. apple
      B. banana cherry
      C. 10 20 30
      D. apple banana cherry

      Solution

      1. Step 1: Understand the pattern condition

        The pattern '$2 > 15' means only lines where the second field is greater than 15 are selected.
      2. Step 2: Apply the condition to each line

        Line 1: 10 > 15? No. Line 2: 20 > 15? Yes. Line 3: 30 > 15? Yes.
      3. Step 3: Print the first field of matching lines

        For lines 2 and 3, print $1: 'banana' and 'cherry'.
      4. Final Answer:

        banana cherry -> Option B
      5. Quick Check:

        Fields > 15 print first field = banana, cherry [OK]
      Hint: Check pattern filters before printing fields [OK]
      Common Mistakes:
      • Printing all lines ignoring pattern
      • Printing second field instead of first
      • Confusing numeric comparison with string
      4. Identify the error in this awk command:
      awk '$1 == "apple" print $2' file.txt
      medium
      A. Incorrect field number
      B. Wrong comparison operator
      C. Missing braces {} around action
      D. Quotes around apple should be single quotes

      Solution

      1. Step 1: Check awk syntax for pattern and action

        Awk requires actions to be inside braces {} after the pattern.
      2. Step 2: Identify missing braces

        The command misses braces around 'print $2', causing syntax error.
      3. Final Answer:

        Missing braces {} around action -> Option C
      4. Quick Check:

        Actions need braces {} [OK]
      Hint: Always put actions inside {} in awk [OK]
      Common Mistakes:
      • Omitting braces around actions
      • Using wrong comparison operators
      • Misquoting strings inside patterns
      5. You want to print the second field only for lines where the first field starts with 'a' or 'b'. Which awk command achieves this?
      hard
      A. awk '$1 ~ /^[ab]/ {print $2}' file.txt
      B. awk '$1 == "a" || $1 == "b" {print $2}' file.txt
      C. awk '$1 = "a" || $1 = "b" {print $2}' file.txt
      D. awk '$1 ~ /a|b/ {print $2}' file.txt

      Solution

      1. Step 1: Understand pattern for fields starting with 'a' or 'b'

        The regex /^[ab]/ matches strings starting with 'a' or 'b'. The operator ~ means regex match.
      2. Step 2: Check each option's correctness

        awk '$1 ~ /^[ab]/ {print $2}' file.txt uses correct regex and syntax. awk '$1 == "a" || $1 == "b" {print $2}' file.txt compares whole field to 'a' or 'b' exactly, not starts with. awk '$1 = "a" || $1 = "b" {print $2}' file.txt uses assignment '=' instead of comparison '=='. awk '$1 ~ /a|b/ {print $2}' file.txt matches anywhere 'a' or 'b' appears, not just start.
      3. Final Answer:

        awk '$1 ~ /^[ab]/ {print $2}' file.txt -> Option A
      4. Quick Check:

        Regex match start with a or b = awk '$1 ~ /^[ab]/ {print $2}' file.txt [OK]
      Hint: Use regex ^[ab] to match start of field [OK]
      Common Mistakes:
      • Using = instead of == for comparison
      • Matching exact string instead of start
      • Using wrong regex without ^ anchor
      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