sed imprimir cada segunda linha

0

Eu tenho abaixo o arquivo: main.txt

/F/FID/FID/000001/0/20180215//1/2/
/F/FID/FID/000002/0/20180215//1/2/
/F/FID/FID/000003/0/20180215//1/2/
/F/FID/FID/000004/0/20180215//1/2/
/F/FID/FID/000005/0/20180215//1/2/
/F/FID/FID/000006/0/20180215//1/2/

Eu gosto de usar o sed para imprimir cada duas linhas em um novo arquivo:

arquivo1.txt

/F/FID/FID/000001/0/20180215//1/2/
/F/FID/FID/000002/0/20180215//1/2/

arquivo2.txt

/F/FID/FID/000003/0/20180215//1/2/
/F/FID/FID/000004/0/20180215//1/2/

file3.txt

/F/FID/FID/000005/0/20180215//1/2/
/F/FID/FID/000006/0/20180215//1/2/
    
por Drsin 28.02.2018 / 04:50

1 resposta

1

Não é fácil com sed , mas

awk 'NR%2 {fname = sprintf("file%d.txt", ++n)} {print > fname}' main.txt

dando

head file*.txt
==> file1.txt <==
/F/FID/FID/000001/0/20180215//1/2/
/F/FID/FID/000002/0/20180215//1/2/

==> file2.txt <==
/F/FID/FID/000003/0/20180215//1/2/
/F/FID/FID/000004/0/20180215//1/2/

==> file3.txt <==
/F/FID/FID/000005/0/20180215//1/2/
/F/FID/FID/000006/0/20180215//1/2/

Alternativamente,

split --lines=2 --numeric-suffixes=1 --suffix-length=1 --additional-suffix='.txt' main.txt 'file'

(algumas dessas opções podem ser específicas para a versão GNU de split ).

    
por 28.02.2018 / 06:10

Tags