Bird
Raised Fist0
Linux CLIscripting~5 mins

tr (translate characters) in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: tr (translate characters)
O(n)
Understanding Time Complexity

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

Specifically, how does processing more characters affect execution time?

Scenario Under Consideration

Analyze the time complexity of the following tr command usage.

cat input.txt | tr 'a-z' 'A-Z'

This command reads text from input.txt and converts all lowercase letters to uppercase.

Identify Repeating Operations

Look for repeated actions inside the command.

  • Primary operation: Reading each character and translating it if it matches.
  • How many times: Once for every character in the input file.
How Execution Grows With Input

As the input file gets bigger, the command processes more characters one by one.

Input Size (n)Approx. Operations
10About 10 character translations
100About 100 character translations
1000About 1000 character translations

Pattern observation: The number of operations grows directly with the number of characters.

Final Time Complexity

Time Complexity: O(n)

This means the time taken grows in a straight line with the input size.

Common Mistake

[X] Wrong: "The tr command runs instantly no matter the input size."

[OK] Correct: It actually processes each character, so bigger inputs take more time.

Interview Connect

Knowing how simple commands like tr scale helps you understand performance in real scripts and pipelines.

Self-Check

"What if we used tr to translate only a fixed small set of characters instead of the whole alphabet? How would the time complexity change?"

Practice

(1/5)
1. What does the tr command do in Linux?
easy
A. It translates or deletes characters from input text.
B. It lists files in a directory.
C. It compiles source code.
D. It displays the current directory path.

Solution

  1. Step 1: Understand the purpose of tr

    The tr command is used to translate or delete characters from input text streams.
  2. Step 2: Compare with other options

    Options A, C, and D describe other commands like ls, compilers, and pwd, which are unrelated to tr.
  3. Final Answer:

    It translates or deletes characters from input text. -> Option A
  4. Quick Check:

    tr = translate/delete chars [OK]
Hint: Remember: tr = translate characters [OK]
Common Mistakes:
  • Confusing tr with ls or pwd commands
  • Thinking tr compiles code
  • Assuming tr lists files
2. Which of the following is the correct syntax to replace all lowercase 'a' characters with 'b' using tr?
easy
A. tr -replace a b
B. tr a-z b
C. tr 'a' 'b'
D. tr 'a' to 'b'

Solution

  1. Step 1: Recall tr syntax

    The correct syntax uses single quotes around the sets of characters: tr 'a' 'b'.
  2. Step 2: Evaluate options

    tr a-z b uses a range which translates all lowercase letters to 'b' (padded), incorrect for only 'a'. Options A and C use invalid syntax for tr.
  3. Final Answer:

    tr 'a' 'b' -> Option C
  4. Quick Check:

    Use quotes around sets in tr [OK]
Hint: Use quotes around characters in tr command [OK]
Common Mistakes:
  • Using range 'a-z' for single character
  • Using invalid options like -replace
  • Adding extra words like 'to'
3. What is the output of the command:
echo "hello world" | tr 'a-z' 'A-Z'?
medium
A. HELLO WORLD
B. hello world
C. HELLO world
D. Error: invalid range

Solution

  1. Step 1: Understand the command

    The command converts all lowercase letters (a-z) to uppercase (A-Z) in the input text "hello world".
  2. Step 2: Apply translation

    All letters become uppercase, so "hello world" becomes "HELLO WORLD".
  3. Final Answer:

    HELLO WORLD -> Option A
  4. Quick Check:

    Lowercase to uppercase translation = HELLO WORLD [OK]
Hint: tr 'a-z' 'A-Z' converts lowercase to uppercase [OK]
Common Mistakes:
  • Expecting partial uppercase
  • Confusing input and output
  • Thinking it causes an error
4. Identify the error in this command:
echo "123abc" | tr '0-9' 'a-j'
medium
A. Ranges in sets are mismatched length causing error
B. No error, command works correctly
C. Output will be empty
D. Quotes are missing around sets

Solution

  1. Step 1: Analyze the command

    The command replaces digits 0-9 with letters a-j. Both sets have equal length (10 characters).
  2. Step 2: Check for syntax or runtime errors

    Quotes are present, ranges are valid and equal length, so no error occurs.
  3. Final Answer:

    No error, command works correctly -> Option B
  4. Quick Check:

    Equal length ranges with quotes = valid command [OK]
Hint: Ensure equal length sets in tr to avoid errors [OK]
Common Mistakes:
  • Assuming mismatched lengths cause errors here
  • Missing quotes around sets
  • Expecting output to be empty
5. You want to remove all vowels (a, e, i, o, u) from a text file named input.txt. Which command correctly does this using tr?
hard
A. tr -remove 'aeiou' < input.txt
B. tr 'aeiou' < input.txt
C. tr -r 'aeiou' < input.txt
D. tr -d 'aeiou' < input.txt

Solution

  1. Step 1: Understand the goal

    The goal is to delete vowels from the input text file.
  2. Step 2: Identify correct tr option

    The -d option deletes specified characters. So tr -d 'aeiou' removes vowels.
  3. Step 3: Check other options

    tr 'aeiou' < input.txt lacks the second character set, causing an error. Options C and D use invalid options.
  4. Final Answer:

    tr -d 'aeiou' < input.txt -> Option D
  5. Quick Check:

    Use -d to delete chars in tr [OK]
Hint: Use tr -d to delete characters from input [OK]
Common Mistakes:
  • Missing second character set operand
  • Using invalid options like -r or -remove
  • Forgetting to redirect input
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