I am using cat *.txt to merge multiple txt files into one, but I need each file to be on a separate line.
What is the best way to merge files with each file appearing on a new line?
I am using cat *.txt to merge multiple txt files into one, but I need each file to be on a separate line.
What is the best way to merge files with each file appearing on a new line?
just use awk
awk 'FNR==1{print ""}1' *.txt
If you have a paste
that supports it,
paste --delimiter=\\n --serial *.txt
does a really great job
You can iterate through each file with a for loop:
for filename in *.txt; do # each time through the loop, ${filename} will hold the name # of the next *.txt file. You can then arbitrarily process # each file cat "${filename}" echo # You can add redirection after the done (which ends the # for loop). Any output within the for loop will be sent to # the redirection specified here done > output_file
for file in *.txt do cat "$file" echo done > newfile
I'm assuming you want a line break between files.
for file in *.txt do cat "$file" >> result echo >> result done