Combine texto e adicione linha em branco antes de cada arquivo [duplicado]

0

Eu quero combinar vários arquivos de texto em um diretório para um novo arquivo, deixando novas linhas entre os arquivos.

    
por Dharmesh 09.09.2018 / 18:30

2 respostas

0

Dependendo da situação, pode ser tão fácil quanto:

alguma globbing para pegar seus arquivos (filea, fileb, filec, etc.)

FILES='ls file*'

depois concatena-os

for i in $FILES; do cat "${i}" >> newfile; echo "" >> newfile; done
    
por 09.09.2018 / 21:09
0

Uma maneira de fazer isso é com 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 obtém os arquivos regulares no diretório atual e os transmite para cat , que também tem o arquivo de linhas vazias concatenado.Finalmente, a saída é dada para head , que exclui as linhas vazias à direita e, em seguida, armazena na arquivo de log.

perl -lpe '$\ = eof && !eof() ? "\n\n" : $/' *.files
    
por 09.09.2018 / 21:10