I use while..do..done bash to read file line by line on linux system. The content Bash read file line by line. Bash script the essential for DevOps Roles. you can ref to Bash script tutorial.
Examples Bash read file line by line
Example 1: Using bash to read file.txt file.
[huupv@huupv devopsroles]$ cat file.txt Huu 30 Phan 28 foo 00
The content bash_read_file.sh file
#!/bin/bash #To take a filename as an argument filename="$1" while read -r name age do _NAME="$name" _AGE="$age" echo "Name read from file - ${_NAME}" echo "${_NAME}: Age is - ${_AGE}" done < "$filename"
To change mode execute and run bash script
[huupv@huupv devopsroles]$ chmod +x bash_read_file.sh [huupv@huupv devopsroles]$ ./bash_read_file.sh file.txt
The screen terminal:
Name read from file - Huu Huu: Age is - 30 Name read from file - Phan Phan: Age is - 28 Name read from file - foo foo: Age is - 00
Example 2: Bash script read /etc/passwd file with fields: filed1 filed2 filed3 filed4 filed5 filed6 filed7
The content bash_read_file.sh file
#!/bin/bash #Another thing is to take a filename as an argument. filename="$1" IFSOLD=$IFS IFS=: while read -r field1 field2 field3 field4 field5 field6 field7 do #display fields in /etc/passwd file printf 'Username: %s \t Shell: %s \t Home Dir: %s\n' "$field1" "$field7" "$field6" done < "$filename" IFS=$IFSOLD
The screen output terminal:
Conclusion
Thought the article, you can use Bash read file line by line. I hope will this your helpful.