1

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       
$flist
EOF

Anything less ugly?

Alex Gitelman
  • 275
  • 2
  • 7

1 Answers1

4

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

echo "$flist" | grep myfile.txt

Should work fine.

erickzetta
  • 579
  • 2
  • 4