HowTo: Bash For While Loop Through File Contents Script

by on January 1, 2011 · 0 comments· last updated at December 1, 2012

How can I iterate through each line of a text file with Bash for or while loop under Linux or Unix like operating systems?

The best way to read a text file line by line is to use the bash while loop. The while loop syntax is as follows:

while COMMANDS
do
COMMANDS
done

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
RequirementsNone

OR

while read line
do
echo "$line"
done < /path/to/input.txt

In this example, read /etc/passwd file line by line using while loop:

 
#!/bin/bash
while IFS= read -r line
do
  echo "$line"
done < "/etc/passwd"
 

Another example:

 
#!/bin/bash
## script.sh ##
_file="${1:-/dev/null}"   #fail safe 
while IFS= read -r line
do
  # Do something on $line
  echo "$line"
done < "$_file"
 

Run it as follows:
chmod +x script.sh
./script.sh /path/to/text/file.name



You should follow me on twitter here or grab rss feed to keep track of new changes.

Featured Articles:

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

Tagged as: , , , , ,

Previous Faq:

Next Faq: