removing non-printable chars from multiple files

How do I remove non-printable characters from all txt files and output the results to one file?

I've tried the following:

tr -cd '[:print:]\n' < *.txt > out.txt

and it gives ambiguous redirect error.

How can I get it to operate on all txt files in the current directory and append the output to out.txt?

Try this:

ls -1 | while read FNAME; do tr -d '[:cntrl:]' < "${FNAME}" > "${FNAME}".out; done