Aparar linhas entre dois delimitadores

0

Arquivo de entrada:

sip:[email protected]:5060;user=phone
sip:+17738959697;[email protected]:5060;user=phone
sip:[email protected];user=phone

Como posso obter o seguinte resultado usando grep ou sed ?

    +16309608112

    +17738959697;npdi

    7739469234
    
por Sonal 23.03.2017 / 18:40

3 respostas

2

Isso deve fazer o que você está perguntando:

$ cat /tmp/your/input | sed -e 's/.*:\(\S\+\)@.*//g'
+16309608112

+17738959697;npdi

7739469234
    
por 23.03.2017 / 18:57
2

Usando o Awk:

awk -F'[:@]' '{print $2}' file
+16309608112
+17738959697;npdi
7739469234
    
por 23.03.2017 / 19:04
0

Você também pode usar cut :

cut -d: -f2 file | cut -f1 -d@
# output
+16309608112
+17738959697;npdi
7739469234

Você realmente precisa dessas linhas em branco entre elas?

    
por 23.03.2017 / 19:43