Como concatenar dois arquivos em um novo e classificar a saída em uma linha

5

Eu tenho dois arquivos com alguns nomes neles, quando eu corri cat file1 file2 | sort , o terminal mostra os nomes em ordem alfabética, mas quando eu corro cat file1 file2 > file3 | sort eu não vejo a saída classificada, por quê?

    
por Mohamed Ahmed 16.10.2014 / 15:34

2 respostas

8

Você já redirecionou a saída de file1 e file2 para o novo arquivo file3 .

Com este comando cat file1 file2 > file3 | sort , sort after pipe.

Isso pode ser verificado conforme abaixo.

cat file1
A
Z
B
cat file2
F
G
C

Agora, quando executo o comando como, cat file1 file2 > file3 | sort , podemos ver que o conteúdo de file1 e file2 é gravado em file3 , mas não é classificado.

Eu acredito que o que você está tentando alcançar pode ser facilmente realizado como,

cat file1 file2 | sort > file3

No entanto, ele não mostra a saída na janela do console.

Se você precisar que a saída de dois arquivos após classificados seja gravada em um novo arquivo e, ao mesmo tempo, a saída classificada esteja disponível no console, você poderá fazer algo como abaixo.

cat file1 file2 | sort > file3; cat file3

No entanto, é bom usar tee neste caso. tee pode ser usado efetivamente como

cat file1 file2 | sort | tee file3

O comando acima basicamente concatena 2 arquivos e os classifica e exibe a saída no console e, ao mesmo tempo, grava a saída do canal no novo arquivo especificado usando o comando tee .

Como o usuário casey aponta, se você tiver zsh shell disponível no seu sistema, você pode usar o comando abaixo também.

sort <file1 <file2 | tee file3
    
por 16.10.2014 / 15:50
4

POSIX define a finalidade do utilitário sort , então:

Sort lines of all the named files together and write the result to the specified output.

Você pode classificar dois arquivos em um arquivo de saída concatenado como:

sort $opts file1 file2 >output_file

Se você quiser ver a saída no stdout do seu shell e salvar os resultados em um arquivo de saída, use tee :

sort $opts file[12] | tee output_file
    
por 16.10.2014 / 16:57

Tags