Bird
Raised Fist0
Linux CLIscripting~5 mins

cut (extract columns) in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you have a file or output with many columns, and you only want to see or use a few specific columns. The cut command helps you quickly extract those columns by specifying their positions or delimiters.
When you want to see only the usernames from a list of users with many details.
When you have a CSV file and want to extract just the email addresses column.
When you want to grab the first few characters from each line of a log file.
When you want to split a line of text by a specific character and get one part.
When you want to quickly filter out unnecessary columns from command output.
Commands
This command takes a line of text with fruits separated by commas, then extracts the second fruit using comma as the delimiter.
Terminal
echo "apple,banana,cherry" | cut -d',' -f2
Expected OutputExpected
banana
→
-d - Specifies the delimiter character to split the input line.
→
-f - Selects the field (column) number(s) to extract.
This extracts the first 5 characters from each line of the /etc/passwd file and shows only the first 3 lines to keep output short.
Terminal
cut -c1-5 /etc/passwd | head -3
Expected OutputExpected
root: daemo bin:
→
-c - Selects characters by position instead of fields.
This extracts the 1st and 3rd tab-separated fields from the /etc/passwd file and shows the first 3 lines.
Terminal
cut -f1,3 -d$'\t' /etc/passwd | head -3
Expected OutputExpected
root:0 daemon:1 bin:2
→
-f - Selects multiple fields separated by commas.
→
-d - Specifies the delimiter, here a tab character.
Key Concept

If you remember nothing else from cut, remember: use -d to set the delimiter and -f to pick the columns you want.

Common Mistakes
Not specifying the delimiter when the input is not tab-separated.
cut defaults to tab delimiter, so it won't split correctly if your data uses commas or other characters.
Always use -d with the correct delimiter character matching your input.
Using -f with character positions instead of fields.
-f works on fields separated by delimiter, not on character positions, so it won't extract the right parts.
Use -c to select characters by position, and -f to select fields by delimiter.
Trying to extract fields from input that has no delimiters.
Without delimiters, cut treats the whole line as one field, so -f won't split anything.
Make sure your input has the delimiter you specify, or use -c for character positions.
Summary
Use cut with -d to set the delimiter and -f to select columns (fields).
Use cut with -c to select characters by position instead of fields.
Always check your input format to choose the right delimiter and flags.

Practice

(1/5)
1. What does the cut command do in Linux?
easy
A. Deletes files from the system
B. Changes file permissions
C. Copies files from one directory to another
D. Extracts specific columns or fields from each line of a file or input

Solution

  1. Step 1: Understand the purpose of cut

    The cut command is designed to extract sections from each line of input, usually columns or fields.
  2. Step 2: Compare options

    Options A, C, and D describe other commands like rm, cp, and chmod, not cut.
  3. Final Answer:

    Extracts specific columns or fields from each line of a file or input -> Option D
  4. Quick Check:

    cut extracts columns [OK]
Hint: Remember: cut slices columns, not files [OK]
Common Mistakes:
  • Confusing cut with copy or delete commands
  • Thinking cut changes file content permanently
  • Assuming cut works on whole files, not lines
2. Which of the following is the correct syntax to extract the 2nd and 4th columns from a comma-separated file using cut?
easy
A. cut -d ',' -f 2,4 filename
B. cut -d ',' -f 2 4 filename
C. cut -f 2 4 -d ',' filename
D. cut -f 2-4 -d ',' filename

Solution

  1. Step 1: Understand cut syntax for fields and delimiter

    The option -f specifies fields, and multiple fields must be comma-separated without spaces. The option -d sets the delimiter.
  2. Step 2: Identify correct order and format

    The correct syntax places -d ',' before -f 2,4 or vice versa, but fields must be comma-separated. cut -d ',' -f 2,4 filename correctly uses -d ',' -f 2,4.
  3. Final Answer:

    cut -d ',' -f 2,4 filename -> Option A
  4. Quick Check:

    Fields comma-separated, delimiter set correctly [OK]
Hint: Use commas between fields and set delimiter with -d [OK]
Common Mistakes:
  • Separating fields with spaces instead of commas
  • Mixing order of options incorrectly
  • Omitting the delimiter option for non-tab files
3. Given a file data.txt with the following content:
apple,banana,cherry,date
red,yellow,red,brown
sweet,sweet,tart,sweet

What is the output of the command cut -d ',' -f 3 data.txt?
medium
A. date brown sweet
B. banana yellow sweet
C. cherry red tart
D. apple red sweet

Solution

  1. Step 1: Identify the delimiter and field number

    The delimiter is a comma, and the command extracts the 3rd field from each line.
  2. Step 2: Extract the 3rd field from each line

    Line 1: 'cherry'
    Line 2: 'red'
    Line 3: 'tart'
  3. Final Answer:

    cherry red tart -> Option C
  4. Quick Check:

    3rd column extracted correctly [OK]
Hint: Count fields separated by delimiter, pick correct number [OK]
Common Mistakes:
  • Counting fields starting at zero instead of one
  • Using wrong delimiter
  • Extracting wrong field number
4. You run the command cut -f 1,3 -d ':' file.txt but get no output. What is the most likely reason?
medium
A. The file is empty
B. The file uses spaces instead of ':' as delimiter
C. The fields 1 and 3 do not exist in the file
D. The cut command does not support multiple fields

Solution

  1. Step 1: Check possible causes for no output

    cut produces no output if there are no lines to process.
  2. Step 2: Evaluate the most likely cause

    A wrong delimiter produces modified output (whole lines with tabs), not empty. Fields 1 always exists, multiple fields supported. Empty file causes truly no output.
  3. Final Answer:

    The file is empty -> Option A
  4. Quick Check:

    Empty file -> no output [OK]
Hint: Verify input file has content before debugging [OK]
Common Mistakes:
  • Assuming delimiter mismatch causes no output
  • Thinking cut fails if fields missing
  • Believing cut can't handle multiple fields
5. You have a file records.txt with tab-separated values. You want to extract the 1st and 3rd columns but only if the 3rd column is not empty. Which command correctly does this?
hard
A. cut -f 1,3 records.txt | grep -v '^\t$' | cut -f 3
B. awk -F '\t' '$3 != "" {print $1, $3}' records.txt
C. cut -f 1,3 records.txt | grep -v '^\t$'
D. cut -f 1,3 records.txt | grep '^\t$'

Solution

  1. Step 1: Understand cut limitation

    cut extracts columns but cannot filter lines based on content.
  2. Step 2: Use a tool that filters lines by field content

    awk can check if the 3rd field is not empty and print the 1st and 3rd fields.
  3. Step 3: Analyze options

    awk -F '\t' '$3 != "" {print $1, $3}' records.txt uses awk with tab delimiter and condition $3 != "", printing fields 1 and 3 correctly.
  4. Final Answer:

    awk -F '\t' '$3 != "" {print $1, $3}' records.txt -> Option B
  5. Quick Check:

    Use awk to filter and extract columns [OK]
Hint: Use awk for filtering and extracting columns together [OK]
Common Mistakes:
  • Trying to filter lines using cut alone
  • Using grep incorrectly to filter empty fields
  • Not specifying correct delimiter in awk
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