Bird
Raised Fist0
Linux CLIscripting~5 mins

tr (translate characters) in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you need to change or remove certain characters in text. The tr command helps you replace or delete characters quickly in Linux command line.
When you want to convert all lowercase letters in a file to uppercase.
When you need to remove all digits from a text stream.
When you want to replace spaces with underscores in filenames.
When cleaning up input by deleting unwanted characters like punctuation.
When preparing data by translating characters before processing.
Commands
This command converts all lowercase letters in the phrase 'hello world' to uppercase letters.
Terminal
echo "hello world" | tr 'a-z' 'A-Z'
Expected OutputExpected
HELLO WORLD
This command deletes all digits from the string 'user1234data', leaving only letters.
Terminal
echo "user1234data" | tr -d '0-9'
Expected OutputExpected
userdata
→
-d - Deletes characters specified in the set.
This command replaces all spaces in the filename with underscores to make it easier to handle in scripts.
Terminal
echo "file name with spaces.txt" | tr ' ' '_'
Expected OutputExpected
file_name_with_spaces.txt
Key Concept

If you remember nothing else from tr, remember: it replaces or deletes characters from input streams one by one.

Common Mistakes
Using tr with strings of different lengths for source and target sets.
tr expects the source and target sets to be the same length for translation; otherwise, it may produce unexpected results.
Make sure the sets you provide to tr have the same number of characters when translating.
Trying to use tr to replace words or multiple characters at once.
tr works on single characters only, not strings or words.
Use other tools like sed or awk for replacing words or patterns.
Not quoting character sets, causing shell expansion issues.
Without quotes, the shell might interpret characters like * or ? before tr runs.
Always quote character sets to prevent shell expansion.
Summary
Use tr to translate or delete characters in text streams.
The -d flag deletes specified characters instead of replacing them.
Always ensure source and target character sets are the same length for translation.

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