Bird
Raised Fist0
Bash Scriptingscripting~5 mins

awk field extraction in scripts in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does $1 represent in an awk command?

$1 represents the first field (or column) of the current line being processed by awk.

Click to reveal answer
beginner
How do you print the third field of each line using awk?

Use awk '{print $3}' filename to print the third field of each line.

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

The default field separator is any whitespace (spaces or tabs).

Click to reveal answer
intermediate
How can you change the field separator to a comma in awk?

Use the -F option like this: awk -F',' '{print $2}' filename to split fields by commas.

Click to reveal answer
intermediate
In a script, how do you store the second field of a line into a variable using awk?

You can use command substitution: var=$(awk '{print $2}' filename). This stores the second field output into the shell variable var.

Click to reveal answer
What does awk '{print $1}' file.txt do?
APrints the whole line
BPrints the last field of each line
CPrints the first field of each line in file.txt
DDeletes the first field
How do you tell awk to split fields by a colon :?
Aawk -S':' '{print $2}' file
Bawk -F':' '{print $2}' file
Cawk --field=':' '{print $2}' file
Dawk -D':' '{print $2}' file
If a line is apple orange banana, what does $3 represent?
Abanana
Borange
Capple
DThe whole line
Which command prints the second and fourth fields separated by a space?
Aawk '{print $2+$4}' file
Bawk '{print $2.$4}' file
Cawk '{print $2-$4}' file
Dawk '{print $2, $4}' file
What is the output of awk -F',' '{print $1}' on the line red,green,blue?
Ared
Bgreen
Cblue
Dred,green,blue
Explain how awk extracts fields from a line and how you can change the field separator.
Think about how words in a sentence are split by spaces or other characters.
You got /3 concepts.
    Describe how to use awk inside a bash script to save a specific field from a file into a variable.
    Remember how you capture command output in bash.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does awk '{print $2}' file.txt do in a bash script?
      easy
      A. Prints the second word (field) from each line of file.txt
      B. Prints the entire line from file.txt
      C. Prints the first word (field) from each line of file.txt
      D. Prints the number of lines in file.txt

      Solution

      1. Step 1: Understand awk field numbering

        Awk splits each line into fields separated by spaces by default. $1 is the first field, $2 is the second, and so on.
      2. Step 2: Analyze the command

        The command prints $2, which is the second field of each line in file.txt.
      3. Final Answer:

        Prints the second word (field) from each line of file.txt -> Option A
      4. Quick Check:

        Awk $2 prints second field [OK]
      Hint: Remember $1 is first field, $2 second, etc. [OK]
      Common Mistakes:
      • Confusing $2 with line number
      • Thinking it prints entire line
      • Mixing up field numbers starting at 0
      2. Which of the following is the correct syntax to print the third field using awk with a comma as the field separator?
      easy
      A. awk -F ',' '{print $3}' file.csv
      B. awk '{print $3 -F ','}' file.csv
      C. awk '{print $3, -F ","}' file.csv
      D. awk -F ';' '{print $3}' file.csv

      Solution

      1. Step 1: Identify field separator option

        The -F option sets the field separator. For comma-separated files, use -F ','.
      2. Step 2: Check print syntax

        The correct print syntax is '{print $3}' to print the third field.
      3. Final Answer:

        awk -F ',' '{print $3}' file.csv -> Option A
      4. Quick Check:

        Use -F ',' before script block [OK]
      Hint: Use -F 'separator' before the awk script block [OK]
      Common Mistakes:
      • Placing -F inside the print statement
      • Using wrong separator like semicolon for CSV
      • Misplacing quotes around separator
      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 10 banana 5 cherry 20
      B. apple red banana yellow cherry red
      C. 10 red 5 yellow 20 red
      D. apple banana cherry

      Solution

      1. Step 1: Identify fields in each line

        Each line has three fields: $1=fruit, $2=number, $3=color.
      2. Step 2: Print first and third fields

        The command prints $1 and $3 separated by space, so output lines are fruit and color pairs.
      3. Final Answer:

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

        Print $1 and $3 fields [OK]
      Hint: Match $1, $2, $3 to columns in data [OK]
      Common Mistakes:
      • Printing wrong fields like $2 instead of $3
      • Confusing field order
      • Expecting numbers instead of colors
      4. What is wrong with this awk command to print the first field from a colon-separated file?
      awk '{print $1}' -F ':' file.txt
      medium
      A. The colon separator is invalid in awk
      B. The $1 should be $0 to print the whole line
      C. The -F option should come before the script block
      D. The file name should come before the script block

      Solution

      1. Step 1: Check placement of -F option

        The -F option must come before the script block in awk commands.
      2. Step 2: Analyze the command structure

        Correct syntax is: awk -F ':' '{print $1}' file.txt
      3. Final Answer:

        The -F option should come before the script block -> Option C
      4. Quick Check:

        -F before script block [OK]
      Hint: Put -F before the '{print ...}' block [OK]
      Common Mistakes:
      • Placing -F after the script block
      • Using wrong field variable
      • Misordering file name and script
      5. You have a file records.txt with lines like:
      John|Doe|30|Engineer
      Jane|Smith|25|Designer
      Bob|Brown|40|Manager

      Write an awk command to print only the names (first and last) of people older than 28.
      hard
      A. awk -F '|' '$3 < 28 {print $1, $2}' records.txt
      B. awk -F ',' '$3 > 28 {print $1, $2}' records.txt
      C. awk '{if ($3 > 28) print $1, $2}' records.txt
      D. awk -F '|' '$3 > 28 {print $1, $2}' records.txt

      Solution

      1. Step 1: Set correct field separator

        The file uses '|' as separator, so use -F '|' to split fields correctly.
      2. Step 2: Filter by age and print names

        Use condition $3 > 28 to select lines where age is greater than 28, then print first and second fields (first and last names).
      3. Final Answer:

        awk -F '|' '$3 > 28 {print $1, $2}' records.txt -> Option D
      4. Quick Check:

        Filter $3 > 28 and print $1, $2 [OK]
      Hint: Use -F '|' and condition $3 > 28 to filter [OK]
      Common Mistakes:
      • Using wrong field separator
      • Using wrong comparison operator
      • Not filtering before printing
      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