In this tutorial, we’ll create a small script that reads a text file line by line.
This script can be helpful when we want to do a specific operation on each line of a text file. For instance, we can print each line on the screen.
2. The Text File
Let’s assume we have a text file named lines.txt:
$ cat lines.txt first line second line \\third line
Now that we’ve created our text file, let’s take a look at the script.
3. The Script
The script should receive the file name as an argument. To clarify, the $1 variable holds the first argument:
#!/bin/bash # Receive file name as first argument file_name=$1 while read -r line; do # Reading line by line echo "$line" done < $file_name
Here, we just print the line variable on the screen. In addition, if we want to do something else, we can just replace the echo “$line” line. Moreover, the -r flag tells read not to allow backslash escapes.
As a result, the third line will be displayed exactly the way it is.
4. Making the Script Executable
Now that we’ve created the script, we should make it executable:
$ chmod u+x read_lines.bash
The script is now executable.
5. Running the Script
We need to give the file name to the script as an argument:
$ ./read_lines.bash lines.txt first line second line \\third line
We can see that each line is successfully displayed on the screen.
In short, we learned how to create a Bash script that reads a text file line by line and displays each line on the screen.