Open In App

Shell Script to Read Data From a File

Last Updated : 20 Apr, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

File reading is quite an important task in a Programmer’s life as it makes some tasks quite comfortable and automates certain repetitive and time-consuming things. File reading is quite an interesting concept to learn as it gives insight into quite a lot of things that can be done in the Programming world. In Linux, we have shell scripting that can do it with just a few lines.

Approach

We need to print the contents of a file after reading through it. Firstly, we will need a file to work with so a user input that gets a filename or path. Next, we need to iterate through the file and display the content character by character. The while loops and certain arguments can be used to do it more efficiently. 

Explanation

To read a file, we need a file in the first place. We will simply read from the user input the path to the file or the file name if the file is in the same directory. We are using the read command to input the file path also we are making use of -p argument to pass in a prompt to the user as a text message giving concise information before the user actually types in anything. After the input has been stored in a preferable variable name we then move towards the actual reading of the file.

To read in from a file, we are going to use while loop that reads in from a stream of characters of the file. We used to read and then a variable that stores the current character. We output the character using echo. But the argument we have passed in to read i.e. n1 will allow us to read the file character by character *Note that if you don’t include the argument -n1 you will read the file line by line.* We will continue to loop through unless we are at the EOF or End of File as depicted in the done statement, We can also say the file stream has ended at EOF.  If you want to go by more characters we can increment the -n to any desirable number. 

Shell Script Code Snippet:

Example 1: Script to read file character by character.

#!/bin/bash
read -p "Enter file name : " filename
while read -n1 character
do 
echo $character
done < $filename

Output:

Shell Script To Read Data From A File

Example 2: Read line by line:

#!/bin/bash
read -p "Enter file name : " filename
while read line
do 
echo $line
done < $filename

Output:

Shell Script To Read Data From A File

 


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads