我想将目录中的多个文本文件合并到一个新文件中,同时在文件之间保留新行。
答案1
根据具体情况,它可能很简单:
一些通配符来获取你的文件(filea、fileb、filec 等)
FILES=`ls file*`
然后将它们连接起来
for i in $FILES; do cat "${i}" >> newfile; echo "" >> newfile; done
答案2
一种方法是GNU find
:
td=$(mktemp -d);printf '\n\n' > "$td/2"
find . -maxdepth 1 -type f -exec cat {} "$td/2" \; | head -n -2 > "$td/log"
find
获取当前目录中的常规文件并将它们传递给cat
也连接有空行文件的文件。最后将输出提供给head
删除尾随空行的文件,然后将其存储在日志文件中。
perl -lpe '$\ = eof && !eof() ? "\n\n" : $/' *.files