string我想sed我从传入的sniffered数据包中得到…我想从string中获取子stringfe
INVITE sip:18455845013@192.168.192.253:5060 SIP/2.0
使用sed
我想提取子string。
Substring介于sip:
和@
之间…所以对于我的例子,我需要得到
18455845013
输入文件
$ 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
如果您的grep
支持-P
标志,请尝试:
grep -oP '(?<=sip:)[^@]*'
结果:
18455845013
否则,像史蒂文·潘尼一样使用sed
。 HTH。
保持:和@之间的位。
sed 's/.*:\(.*\)@.*/\1/'
例:
$ echo "INVITE sip:18455845013@192.168.192.253:5060 SIP/2.0" | sed 's/.*:\(.*\)@.*/\1/' 18455845013