How can I read a file line-by-line?
while read line do echo "$line" done < "$file"
If you want to operate on individual fields within each line, you may supply additional variables to read:
# Input file has 3 columns separated by white space. while read first_name last_name phone; do ... done < "$file"
If the field delimiters are not whitespace, you can set IFS (input field separator):
while IFS=: read user pass uid gid gecos home shell; do ... done < /etc/passwd