字符串我想要从传入的sniffered数据包中获取...我想从字符串中获取子字符串,f.e。
INVITE sip:18455845013@192.168.192.253:5060 SIP/2.0
使用sed
我想提取子字符串。
子串在sip:
和@
之间...所以对于我的例子,我需要得到
18455845013
答案 0 :(得分:1)
输入文件
$ cat foo.txt
INVITE sip:18455845013@192.168.192.253:5060 SIP/2.0
结果
$ sed 'y/:@/\r\n/;P;d' foo.txt
18455845013
:
更改为\r
@
更改为\n
答案 1 :(得分:1)
如果您的grep
支持-P
标记,请尝试:
grep -oP '(?<=sip:)[^@]*'
结果:
18455845013
否则,像史蒂文·彭尼一样使用sed
。 HTH。
答案 2 :(得分:1)
保持位于:和@。
之间sed 's/.*:\(.*\)@.*/\1/'
示例:
$ echo "INVITE sip:18455845013@192.168.192.253:5060 SIP/2.0" | sed 's/.*:\(.*\)@.*/\1/'
18455845013