Isso deve fazer o que você está perguntando:
$ cat /tmp/your/input | sed -e 's/.*:\(\S\+\)@.*//g'
+16309608112
+17738959697;npdi
7739469234
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
Isso deve fazer o que você está perguntando:
$ cat /tmp/your/input | sed -e 's/.*:\(\S\+\)@.*//g'
+16309608112
+17738959697;npdi
7739469234
Usando o Awk:
awk -F'[:@]' '{print $2}' file
+16309608112
+17738959697;npdi
7739469234
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?
Tags grep text-processing sed