2013-04-12 9 views

回答

1

輸入文件

$ cat foo.txt 
INVITE sip:1[email protected]:5060 SIP/2.0 

結果

$ sed 'y/:@/\r\n/;P;d' foo.txt 
18455845013 
  • 變化:\r
  • 變化@\n
  • 打印高達第一個換行符
  • 刪除模式空間
+0

哦,史蒂芬謝謝!我會接受你的回答!我自己通過** grep -oE「sip \:[0-9] {1,11}」** ...現在將決定使用什麼!!!非常感謝!!!!!!!!! – timonvlad

1

如果您grep支持-P標誌時,嘗試:

grep -oP '(?<=sip:)[^@]*' 

結果:

18455845013 

否則,使用sed就像史蒂文彭尼已經完成。 HTH。

1

保留:和@之間的位。

sed 's/.*:\(.*\)@.*/\1/' 

例子:

$ echo "INVITE sip:[email protected]:5060 SIP/2.0" | sed 's/.*:\(.*\)@.*/\1/' 
18455845013