neversaint neversaint - 23 days ago 7
Linux Question

Concatenating Files And Insert New Line In Between Files

I have multiple files which I want to concat with

cat
.
Let's say

File1.txt
foo

File2.txt
bar

File3.txt
qux


I want to concat so that the final file looks like:

foo

bar

qux


Instead of this with usual
cat File*.txt > finalfile.txt


foo
bar
qux


What's the right way to do it?

Answer

You can do:

for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done

Make sure the file finalfile.txt does not exist before you run the above command.

If you are allowed to use awk you can do:

awk 'FNR==1{print ""}1' *.txt > finalfile.txt
Comments