Is there a (simple) way to feed variable with end of lines to other program in BASH? Consider example:

flist=$(ls -l)
echo $flist

echo will replace all end of lines with spaces, so my output will be different from the content of the variable. Other example:

echo $flist | grep myfile.txt

This command will not work as expected to output only information about myfile.txt. How do I print the line that contains myfile.txt.

Here is one solution:

cat << EOF | grep myfile.txt       

Anything less ugly?

1 Answer 1


The problem is not echo, is the shell. Try to use double quotes:

echo "$flist" | grep myfile.txt

Should work fine.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .