Bird
Raised Fist0
Bash Scriptingscripting~5 mins

sort and uniq in pipelines in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the sort command do in a pipeline?
The sort command arranges lines of text in order, usually alphabetically or numerically, making it easier to find duplicates or organize data.
Click to reveal answer
beginner
What is the purpose of the uniq command in a pipeline?
The uniq command filters out repeated adjacent lines, showing only unique lines. It works best when input is sorted first.
Click to reveal answer
beginner
Why do we usually use sort before uniq in pipelines?
Because uniq only removes duplicates that are next to each other, sorting first groups duplicates together so uniq can remove them properly.
Click to reveal answer
intermediate
How can you count how many times each unique line appears using sort and uniq?
Use sort | uniq -c. The -c option tells uniq to prefix each unique line with the number of times it appears.
Click to reveal answer
beginner
What will the command cat file.txt | sort | uniq do?
It will read the file file.txt, sort all lines alphabetically, then remove any duplicate lines, showing only unique sorted lines.
Click to reveal answer
Why should you use sort before uniq in a pipeline?
ABecause <code>uniq</code> sorts the lines automatically
BBecause <code>sort</code> removes duplicates
CBecause <code>uniq</code> only removes adjacent duplicate lines
DBecause <code>sort</code> counts duplicates
What does the command sort file.txt | uniq -c do?
ASorts lines and counts how many times each unique line appears
BSorts lines and removes all duplicates without counting
CCounts lines without sorting
DRemoves duplicates but does not sort
What happens if you run uniq file.txt without sorting first?
AOnly adjacent duplicate lines are removed
BAll duplicates in the file are removed
CThe file is sorted automatically
DThe command will fail
Which command pipeline shows unique lines sorted alphabetically?
A<code>sort file.txt | uniq -c</code>
B<code>cat file.txt | uniq | sort</code>
C<code>uniq file.txt | sort</code>
D<code>cat file.txt | sort | uniq</code>
What does the -c option do with uniq?
ARemoves all lines
BCounts occurrences of each unique line
CSorts the lines
DChanges the case of lines
Explain why sorting is important before using uniq in a pipeline.
Think about how <code>uniq</code> works with lines next to each other.
You got /3 concepts.
    Describe how to count the number of times each unique line appears in a text file using bash commands.
    Combine sort and uniq with a special option.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using sort | uniq together in a bash pipeline?
      easy
      A. To get a sorted list with duplicates removed
      B. To count the number of lines in a file
      C. To sort lines but keep duplicates
      D. To find the longest line in a file

      Solution

      1. Step 1: Understand what sort does

        The sort command arranges lines in alphabetical or numerical order.
      2. Step 2: Understand what uniq does after sorting

        The uniq command removes duplicate adjacent lines, so sorting first groups duplicates together for removal.
      3. Final Answer:

        To get a sorted list with duplicates removed -> Option A
      4. Quick Check:

        sort + uniq = sorted unique lines [OK]
      Hint: Always sort before uniq to remove all duplicates [OK]
      Common Mistakes:
      • Using uniq before sort, which misses duplicates
      • Thinking uniq counts lines instead of removing duplicates
      • Assuming sort removes duplicates by itself
      2. Which of the following is the correct syntax to remove duplicate lines from file.txt and sort the output?
      easy
      A. uniq file.txt | sort
      B. sort file.txt | uniq
      C. sort | uniq file.txt
      D. uniq | sort file.txt

      Solution

      1. Step 1: Identify correct command order

        The file must be sorted first, so sort file.txt comes before uniq.
      2. Step 2: Check syntax correctness

        sort file.txt | uniq correctly pipes sorted output to uniq for duplicate removal.
      3. Final Answer:

        sort file.txt | uniq -> Option B
      4. Quick Check:

        sort first, then uniq = correct syntax [OK]
      Hint: Pipe sorted output into uniq: sort file | uniq [OK]
      Common Mistakes:
      • Placing uniq before sort, which fails to remove all duplicates
      • Incorrect pipe placement causing syntax errors
      • Trying to pass file as argument to uniq instead of sort
      3. Given a file names.txt with contents:
      bob
      alice
      bob
      carol
      alice
      bob

      What is the output of sort names.txt | uniq?
      medium
      A. alice bob bob carol alice bob
      B. bob alice carol
      C. bob carol alice
      D. alice bob carol

      Solution

      1. Step 1: Sort the file contents

        Sorting lines alphabetically gives: alice, alice, bob, bob, bob, carol.
      2. Step 2: Apply uniq to remove duplicates

        Uniq removes repeated adjacent lines, resulting in: alice, bob, carol.
      3. Final Answer:

        alice\nbob\ncarol -> Option D
      4. Quick Check:

        sort + uniq = unique sorted lines [OK]
      Hint: Sort first to group duplicates, then uniq removes repeats [OK]
      Common Mistakes:
      • Not sorting first, so uniq misses duplicates
      • Expecting original order instead of sorted
      • Confusing uniq output with counting duplicates
      4. You run uniq file.txt | sort to remove duplicates and sort lines, but duplicates remain. What is the likely problem?
      medium
      A. uniq only removes adjacent duplicates, so sorting after uniq misses duplicates
      B. sort command is not working without options
      C. file.txt is empty, so no output
      D. uniq requires -c option to remove duplicates

      Solution

      1. Step 1: Understand uniq behavior

        Uniq removes only adjacent duplicate lines, so if duplicates are scattered, it won't remove them.
      2. Step 2: Analyze command order effect

        Sorting after uniq means duplicates are not grouped before uniq runs, so duplicates remain.
      3. Final Answer:

        uniq only removes adjacent duplicates, so sorting after uniq misses duplicates -> Option A
      4. Quick Check:

        uniq needs sorted input to remove all duplicates [OK]
      Hint: Sort before uniq to group duplicates for removal [OK]
      Common Mistakes:
      • Thinking uniq removes all duplicates regardless of order
      • Believing sort alone removes duplicates
      • Using uniq -c instead of uniq for removal
      5. You have a log file access.log with many repeated IP addresses scattered randomly. You want a sorted list of unique IPs. Which command pipeline correctly achieves this?
      hard
      A. cat access.log | uniq | sort
      B. uniq access.log | sort
      C. sort -u access.log
      D. uniq access.log | sort -u

      Solution

      1. Step 1: Understand sort -u option

        sort -u sorts and removes duplicates in one step efficiently.
      2. Step 2: Why others fail

        Options A, B, and D all apply uniq before sorting, missing non-adjacent duplicates since IPs are scattered randomly.
      3. Final Answer:

        sort -u access.log -> Option C
      4. Quick Check:

        sort -u = sorted unique lines in one command [OK]
      Hint: Use sort -u for sorted unique lines in one step [OK]
      Common Mistakes:
      • Using uniq before sort, missing duplicates
      • Not knowing sort -u combines sorting and uniqueness
      • Using unnecessary cat command
      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