- 论坛徽章:
- 0
|
字符串 str="in:ADSL out:Lan, proto TCP (ACK,PSH), 60.28.123.144:6020->192.168.1.70:1538, len 64' );"
在str中60.28.123.144表示源地址,6020表示源端口,192.168.1.70表示目的地址,1538表示目的端口
我的目的是想将地址和端口分别保存在$SRCIP,$SRCPORT,$DESIP,$DESPORT等变量中。
我的脚本是这样写的:
- str="in:ADSL out:Lan, proto TCP (ACK,PSH), 60.28.123.144:6020->192.168.1.70:1538, len 64' );"
- eval `echo "$str" | sed -r "s/.*,([0-9]+.[0-9]+.[0-9]+.[0-9]+):([0-9]+).*-([0-9]+.[0-9]+.[0-9]+.[0-9]+):([0-9]+).*$/SRCIP='1' SRCPORT='2' DESIP='3' DESPORT='4'/"`
复制代码
但是必须保证$str中不能包含() <>空格等特殊符号,如果含有这些特殊符号就会出现“syntax error near unexpected token `('”,高手帮忙看看如何解决?如何不会出现错误?(请注意,由于某些原因str中的特殊符号不能过滤) |
|