Discover how a simple symbol can save you hours of tedious typing!
Why stdin redirection (<) in Linux CLI? - Purpose & Use Cases
Imagine you have a long list of names saved in a file, and you want to run a command that processes each name one by one. Without redirection, you would have to type or copy-paste each name manually into the command prompt.
This manual typing is slow and tiring. It's easy to make mistakes like typos or missing lines. Also, repeating the same command for many inputs wastes time and energy.
Using stdin redirection with the < symbol, you can feed the contents of a file directly into a command as if you typed it yourself. This saves time, reduces errors, and automates the process smoothly.
command name1 command name2 command name3
command < names.txt
This lets you easily automate commands that need input, making your work faster and more reliable.
For example, if you have a file with a list of email addresses and want to send a welcome message using a command-line tool, you can redirect the file as input instead of typing each email manually.
Manual input is slow and error-prone.
Stdin redirection feeds file content directly to commands.
This makes automation simple and efficient.
Practice
sort < names.txt do in Linux?Solution
Step 1: Understand stdin redirection with
The<<symbol sends the content ofnames.txtas input to thesortcommand.Step 2: Effect of the command
Thesortcommand reads the file content and outputs the sorted lines to the screen (standard output).Final Answer:
It sorts the lines inside the filenames.txtand shows the result. -> Option AQuick Check:
stdin redirection<sends file content as input [OK]
- Thinking < saves output to the file
- Confusing < with > (output redirection)
- Assuming the file is modified
input.txt to the command wc -l?Solution
Step 1: Identify correct stdin redirection syntax
The correct way to redirect input iscommand < filename. Sowc -l < input.txtis correct.Step 2: Check other options
wc -l > input.txt uses > which is output redirection. Options C and D have incorrect order or syntax.Final Answer:
wc -l < input.txt -> Option DQuick Check:
stdin redirection syntax = command < file [OK]
- Using > instead of < for input
- Placing < after filename
- Starting command line with <
numbers.txt containing the lines:3 1 2
What is the output of the command
sort < numbers.txt?Solution
Step 1: Understand the input file content
The filenumbers.txthas three lines: 3, 1, and 2.Step 2: Effect of
Thesort < numbers.txtsortcommand reads the lines and outputs them sorted ascending: 1, 2, 3.Final Answer:
1 2 3 -> Option AQuick Check:
sort command sorts lines from stdin [OK]
- Assuming output is original order
- Confusing input and output redirection
- Expecting numbers sorted numerically without options
grep 'apple' < fruits.txt but get no output, even though fruits.txt contains lines with 'apple'. What is the most likely error?Solution
Step 1: Check if input redirection is valid for grep
grepsupports reading from stdin, sogrep 'apple' < fruits.txtis valid syntax.Step 2: Consider case sensitivity of grep
By default,grepis case-sensitive. If the file has 'Apple' or 'APPLE', it won't match 'apple'.Final Answer:
The pattern 'apple' is case-sensitive and does not match the file content. -> Option CQuick Check:
grep is case-sensitive by default [OK]
- Assuming input redirection is wrong for grep
- Ignoring case differences in pattern
- Thinking file is empty without checking
data.txt contain the word 'error' ignoring case, using stdin redirection. Which command achieves this?Solution
Step 1: Use grep with case-insensitive option and stdin redirection
grep -i 'error' < data.txtreadsdata.txtignoring case.Step 2: Pipe output to
Addingwc -lto count matching lines| wc -lcounts the number of lines output by grep.Final Answer:
grep -i 'error' < data.txt | wc -l -> Option BQuick Check:
Usegrep -iwith<and pipe towc -l[OK]
- Using > instead of < for input
- Placing wc -l before grep
- Redirecting output to input file mistakenly
Ready to prove it?
Pass the test and this pattern moves unknown
