объединить два текстовых файла с добавлением некоторого разделителя между?

drwx------ на Вашем корневом каталоге препятствует тому, чтобы другие пользователи пересекли его, т.е. видели папку Downloads и ее содержание. Можно позволить другим до, видят файлы, к которым они знают путь, но препятствуют тому, чтобы они перечислили файлы с --x перманент, таким образом, Вы захотите chmod 711 /home/trusktr, и проверьте, что другие файлы и каталоги там имеют соответствующие полномочия.

16
23.10.2014, 15:40
4 ответа

С пасты :

$ echo '********************************' | paste -sd$'\n' file1 - file2
2
27.01.2020, 19:48

В bash и zsh вы можете сделать:

cat file1 <(echo '********************************') file2

или как указал микшерв в своем комментарии (в любой оболочке):

echo '********************************' | cat file1 - file2

и в Bash, как прокомментировал David Z:

cat file1 - file2 <<< '********************************'

Любые новые строки в файлах будут показаны:

cat file1 <(echo '********************************') file2

или как указал микшерв в своем комментарии (в любой оболочке):

echo '********************************' | cat file1 - file2

и в Bash, как прокомментировал David Z:

cat file1 - file2 <<< '********************************'

Любые новые строки в файлах. Если вам не нужна новая строка после "разделителя" (например, в случае если file2 начинается с новой строки) вы можете использовать echo -n '****', поэтому подавляйте новую строку после *.

17
27.01.2020, 19:48

Другой подход без использования cat, как показано в здесь ,

awk 'FNR==1{print "******"}{print}' file1 file2 | sed '1d'

Последняя труба sed 1d состоит в том, чтобы удалить первую линию, которая также будет иметь разделитель.

Однако окончательного использования sed вполне можно было бы избежать, если бы мы использовали команду, предложенную 1_CR в его комментариях.

awk 'FNR==1 && NR!=1 {print "******"}{print}' file1 file2
6
27.01.2020, 19:48

Вы также можете разделить его на несколько команд:

cat file1; echo '------------'; cat file2

И вы можете отправить или перенаправить его, используя команду group или подоболочку:

# GROUP COMMAND:
{ cat file1; echo '----------'; cat file2; } | other-command
#                                        ^ final semicolon is part of the syntax!

# SUBSHELL:
( cat file1; echo '----------'; cat file2 ) | other-command

Конечно, вы можете записать это через несколько строк, вместо того, чтобы использовать точку с запятой, как обычно. И легко можно расширить на другой файл с другим разделителем и т.д.

3
27.01.2020, 19:48

Теги

Похожие вопросы