字符串我想要sed我從傳入的sniffered數據包中獲得...我想從字符串中獲取子串,f.e.來自傳入數據包的sed子串
INVITE sip:[email protected]:5060 SIP/2.0
使用sed
我想提取子串。
子串sip:
和@
之間......所以在我的例子,我需要得到
18455845013
字符串我想要sed我從傳入的sniffered數據包中獲得...我想從字符串中獲取子串,f.e.來自傳入數據包的sed子串
INVITE sip:[email protected]:5060 SIP/2.0
使用sed
我想提取子串。
子串sip:
和@
之間......所以在我的例子,我需要得到
18455845013
輸入文件
$ cat foo.txt
INVITE sip:1[email protected]:5060 SIP/2.0
結果
$ sed 'y/:@/\r\n/;P;d' foo.txt
18455845013
:
到\r
@
到\n
如果您grep
支持-P
標誌時,嘗試:
grep -oP '(?<=sip:)[^@]*'
結果:
18455845013
否則,使用sed
就像史蒂文彭尼已經完成。 HTH。
保留:和@之間的位。
sed 's/.*:\(.*\)@.*/\1/'
例子:
$ echo "INVITE sip:[email protected]:5060 SIP/2.0" | sed 's/.*:\(.*\)@.*/\1/'
18455845013
哦,史蒂芬謝謝!我會接受你的回答!我自己通過** grep -oE「sip \:[0-9] {1,11}」** ...現在將決定使用什麼!!!非常感謝!!!!!!!!! – timonvlad