Linux: объединение нескольких файлов, каждая на новой строке

Я использую cat *.txt, чтобы объединить несколько файлов txt в один, но мне нужно, чтобы каждый файл находился в отдельной строке.

Каков наилучший способ объединить файлы с каждым файлом, появляющимся на новой строке?

Ответ 1

просто используйте awk

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

Ответ 2

Если у вас есть paste, который его поддерживает,

paste --delimiter=\\n --serial *.txt

действительно отличная работа

Ответ 3

Вы можете перебирать каждый файл с помощью цикла for:

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

Ответ 4

for file in *.txt
do
  cat "$file"
  echo
done > newfile

Ответ 5

Я предполагаю, что вам нужен разрыв строки между файлами.

for file in *.txt
do
   cat "$file" >> result
   echo >> result
done