Linux, imprimindo partes específicas de um documento de texto

2

Eu quero imprimir, para cada linha de um determinado documento, os primeiros nomes e as idades das pessoas (que são entradas do documento). Qual comando do linux eu usaria? Esperançosamente baseado em grep usando um padrão de expressão regular.

Exemplo de documento de entrada:

Linda:F:Las Vegas, USA:18:telnet  
Steve:M:Leipzig, Germany:33:ftp
Henry:M:Milan, Italy:19:sftp 
Alice:F:Izmir, Turkey:32:pop3s
Robert:M:Verona, Italy:21:scp
Olga:F:Gorontalo, Indonesia:19:pop3s
Kimberly:F:Lille, France:25:ping
Henry:M:Oslo, Norway:26:ftp
Carol:F:New Delhi, India:23:pop3s
Thomas:M:New Delhi, India:32:http
    
por user77927 18.07.2014 / 12:52

3 respostas

5

Você pode usar cut :

cut -d: -f1,4 file
Linda:18

Steve:33

Henry:19

Alice:32

Robert:21

Olga:19

Kimberly:25

Henry:26

Carol:23

Thomas:32
    
por 18.07.2014 / 13:05
4

Você pode usar awk :

$ awk -F':' '{print $1,$4}' file
Linda 18

Steve 33

Henry 19

Alice 32

Robert 21

Olga 19

Kimberly 25

Henry 26

Carol 23

Thomas 32
    
por 18.07.2014 / 12:57
1

sed 's/\([^:]*:\)[^:].*:\([^:]*\):.*//' < file

Linda:18
Steve:33
Henry:19
Alice:32
Robert:21
Olga:19
Kimberly:25
Henry:26
Carol:23
Thomas:32
    
por 19.07.2014 / 10:26