Why does this not work? "ls *.txt | xargs cat > all.txt" (all files into single txt document)
ls *.txt | xargs cat >> all.txt
might work a bit better, since it would append to all.txt instead of creating it again after each file.
By the way, cat *.txt >all.txt
would also work. :-)
If some of your file names contain ', " or space xargs
will fail because of the separator problem
In general never run xargs
without -0 as it will come back and bite you some day.
Consider using GNU Parallel instead:
ls *.txt | parallel cat > tmp/all.txt
or if you prefer:
ls *.txt | parallel cat >> tmp/all.txt
Learn more about GNU Parallel http://www.youtube.com/watch?v=OpaiGYxkSuQ