开发者

Linux: Merging multiple files, each 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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜