When I want to do something with each line in a file I usually write
cat my_file | while read a
do
gzip "$a"
doneThe gzip is just an example it can be anything.
What I'm wondering is if there is another way to get the lines than cat file | while read?
3 Answers
You don't need to use cat:
while read line; do echo "$line"
done < my_fileI don't think there's a simpler way though.
2The simplest, I think, would be to use xargs, e.g.,
xargs -L1 gzip < my_fileThe -L1 option tells xargs to process one input line at a time. You might take a look at GNU parallel, too, which is very similar to xargs but more powerful in some situations.
IFS="\n\b"; for i in $MYROWOFCONTENT; do echo $i; done;