Bird
Raised Fist0
Linux CLIscripting~5 mins

wc (word, line, character count) in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: wc (word, line, character count)
O(n)
Understanding Time Complexity

We want to understand how the time taken by the wc command changes as the size of the input file grows.

Specifically, how does counting words, lines, or characters scale with bigger files?

Scenario Under Consideration

Analyze the time complexity of this command:

wc filename.txt

This command reads the file and counts the number of lines, words, and characters.

Identify Repeating Operations

The command processes the file content by reading it from start to end.

  • Primary operation: Reading each character in the file once.
  • How many times: Once per character in the file.
How Execution Grows With Input

The time taken grows directly with the size of the file because every character must be checked.

Input Size (n)Approx. Operations
10 charactersAbout 10 reads
100 charactersAbout 100 reads
1000 charactersAbout 1000 reads

Pattern observation: Doubling the file size roughly doubles the work done.

Final Time Complexity

Time Complexity: O(n)

This means the time to count lines, words, and characters grows in direct proportion to the file size.

Common Mistake

[X] Wrong: "Counting words or lines is faster than counting characters because there are fewer words or lines."

[OK] Correct: The command still reads every character to identify word and line boundaries, so it must process the whole file anyway.

Interview Connect

Understanding how simple commands like wc scale helps you think about processing large data efficiently in real tasks.

Self-Check

What if we only want to count lines using wc -l? How would the time complexity change?

Practice

(1/5)
1. What does the wc command do in Linux?
easy
A. Counts lines, words, and characters in text
B. Changes file permissions
C. Lists files in a directory
D. Displays disk usage

Solution

  1. Step 1: Understand the purpose of wc

    The wc command is used to count lines, words, and characters in text files or input.
  2. Step 2: Compare with other commands

    Other options like changing permissions or listing files are done by different commands (chmod, ls), not wc.
  3. Final Answer:

    Counts lines, words, and characters in text -> Option A
  4. Quick Check:

    wc = counts lines, words, characters [OK]
Hint: Remember: wc = word count tool for text [OK]
Common Mistakes:
  • Confusing wc with ls or chmod
  • Thinking wc changes files
  • Assuming wc shows disk usage
2. Which of the following is the correct syntax to count only the number of lines in a file named file.txt?
easy
A. wc -w file.txt
B. wc -l file.txt
C. wc -c file.txt
D. wc -m file.txt

Solution

  1. Step 1: Identify option for line count

    The -l option with wc counts lines in the file.
  2. Step 2: Verify other options

    -w counts words, -c counts bytes, and -m counts characters, so they are incorrect for line count.
  3. Final Answer:

    wc -l file.txt -> Option B
  4. Quick Check:

    -l means lines [OK]
Hint: Use -l to count lines, not -w or -c [OK]
Common Mistakes:
  • Using -w or -c instead of -l
  • Forgetting the filename
  • Mixing up -m and -c options
3. Given a file example.txt containing the text:
Hello world
This is a test
What is the output of wc example.txt?
medium
A. 2 6 27 example.txt
B. 3 5 24 example.txt
C. 2 5 24 example.txt
D. 3 6 25 example.txt

Solution

  1. Step 1: Count lines, words, and characters in the file

    Lines: 2 ("Hello world" and "This is a test")
    Words: 6 ("Hello", "world", "This", "is", "a", "test")
    Characters: Count all characters including spaces and newlines.
    "Hello world" = 11 chars, newline = 1, "This is a test" = 14 chars, newline = 1, total = 27 chars.
  2. Step 2: Match counts with options

    2 6 27 example.txt matches exactly: 2 lines, 6 words, 27 characters.
  3. Final Answer:

    2 6 27 example.txt -> Option A
  4. Quick Check:

    Lines=2, Words=6, Characters=27 [OK]
Hint: Count lines, words, chars carefully; wc shows all three by default [OK]
Common Mistakes:
  • Miscounting words or lines
  • Ignoring newline characters in count
  • Assuming output order is different
4. You run wc -l file.txt but get an error: wc: invalid option -- 'x'. What is the likely cause?
medium
A. The file file.txt does not exist
B. You forgot to specify the filename
C. You typed an invalid option like -x by mistake
D. The wc command is not installed

Solution

  1. Step 1: Analyze the error message

    The error says "invalid option -- 'x'", meaning wc received an option -x which it does not recognize.
  2. Step 2: Identify common causes

    This usually happens if you mistype an option, for example -x instead of -l or -w.
  3. Final Answer:

    You typed an invalid option like -x by mistake -> Option C
  4. Quick Check:

    Invalid option error means wrong flag [OK]
Hint: Check option spelling carefully if wc shows invalid option error [OK]
Common Mistakes:
  • Confusing file not found with invalid option error
  • Assuming missing filename causes invalid option error
  • Ignoring typo in command options
5. You want to count only the characters (not bytes) in a UTF-8 encoded file data.txt. Which command should you use?
hard
A. wc -c data.txt
B. wc -w data.txt
C. wc -l data.txt
D. wc -m data.txt

Solution

  1. Step 1: Understand difference between -c and -m

    -c counts bytes, which may differ from characters in UTF-8 files because some characters use multiple bytes.
    -m counts characters, correctly handling multibyte UTF-8 characters.
  2. Step 2: Choose correct option for character count

    To count characters (not bytes), use wc -m.
  3. Final Answer:

    wc -m data.txt -> Option D
  4. Quick Check:

    -m counts characters, not bytes [OK]
Hint: Use -m for characters, -c counts bytes (important for UTF-8) [OK]
Common Mistakes:
  • Using -c and expecting character count
  • Confusing words (-w) with characters
  • Ignoring UTF-8 multibyte character effects
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