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?


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

echo "$flist" | grep myfile.txt

Should work fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.