How to append contents of multiple files into one file
Solution 1:
You need the cat
(short for concatenate) command, with shell redirection (>
) into your output file
cat 1.txt 2.txt 3.txt > 0.txt
Solution 2:
Another option, for those of you who still stumble upon this post like I did, is to use find -exec
:
find . -type f -name '*.txt' -exec cat {} + >> output.file
In my case, I needed a more robust option that would look through multiple subdirectories so I chose to use find
. Breaking it down:
find .
Look within the current working directory.
-type f
Only interested in files, not directories, etc.
-name '*.txt'
Whittle down the result set by name
-exec cat {} +
Execute the cat command for each result. "+" means only 1 instance of cat
is spawned (thx @gniourf_gniourf)
>> output.file
As explained in other answers, append the cat-ed contents to the end of an output file.
Solution 3:
if you have a certain output type then do something like this
cat /path/to/files/*.txt >> finalout.txt