coloca linhas de números em uma coluna com script de shell

0

Eu tenho um arquivo com muitas linhas, como

1 jfkdajfd   1 2 3 5
2 fkldfjld   
3 fdkfloaf   9 10
4 fldfldkf 
5 fdskf;ak   12 1 4

Eu quero pegar todos os números e colocá-los em uma coluna em um arquivo, como

 1
 2
 3
 5
 9
 10
 12
 1
 4

como posso conseguir isso? obrigado

    
por wenzi 16.11.2012 / 16:44

2 respostas

2

Tente

awk '{ for (i = 1; i <= NF; i++) if ($i + 0 == $i) print $i }' < input > output

Eu uso x + 0 == x como teste para ver se x é um número awk válido e, em seguida, imprimo a string original. Cabe a você decidir se deseja awk numbers (isso inclui ponto flutuante, números negativos e muitas implementações, números hexadecimais também) ou algo diferente.

    
por 16.11.2012 / 16:55
1

Que tal

tr -cs 0-9 '[\n*]' < input | grep . > output
    
por 16.11.2012 / 17:01

Tags