Método para colar uma coluna específica quando no terminal

0

Gostaria de colar apenas a terceira coluna de dados do terminal.

Eu originalmente tenho algo como:

4 SF0086 SF0086
12 SF0087 SF0087
17 TSF141 TSF141
29 TSF070 TSF070
30 TSF028 TSF028   
31 TSF122 TSF122

que eu copio e colo no terminal torna-se em uma única linha

4 SF0086 SF0086 12 SF0087 SF0087 17 TSF141 TSF141 29 TSF070 TSF070 30 TSF028 TSF028 31 TSF122 TSF122

Eu gostaria de ver como:

SF0086
SF0087
TSF141
TSF070
TSF028
TSF122

Eu posso salvar a opção de uma linha (meio) como um arquivo naquele ponto e, em seguida, usar algo como awk , sed ou perl ou qualquer coisa disponível no sistema POSIX comum é uma opção, mas Não percebi isso. Eu também não tive sorte com o comando paste e estou chegando à conclusão paste não será capaz de fazer isso por mim. Os dados são alterados (o que significa que o espaçamento mudará) sempre que eu precisar extrair a terceira coluna. Qualquer extrator de dados / formatação mestres lá fora?

    
por TryTryAgain 07.05.2014 / 00:28

2 respostas

1

O que funcionou melhor para mim, como sempre terei duplicatas e a numeração (campos -f) sempre mudará, assim como o fato de minha lista poder ter centenas de campos, cut não estava provando ser uma opção válida.

Isso é o que produziu o que eu queria:

sed -e 's/\s\+/\n/g' data.txt > data_cr.txt && sort data_cr.txt | uniq -d > final.txt

Onde:

sed -e 's/\s\+/\n/g' data.txt > data_cr.txt

força todo o texto, separado por espaços, em sua própria linha e o grava em um novo arquivo data_cr.txt ... e

sort data_cr.txt | uniq -d > final.txt

pega os dados de linha por linha e imprime apenas uma única cópia de qualquer duplicata.

    
por 07.05.2014 / 01:27
2

'cut' é o comando que você está procurando. Você especifica que delimitador usar (espaço em branco é o padrão que acredito) e qual coluna você deseja. A página man listará todos os detalhes.

Você precisará garantir que ele seja colado com suas novas linhas intactas para que ele funcione corretamente.

    
por 07.05.2014 / 00:39

Tags