原帖由 ly5066113 于 2008-11-14 11:56 发表
echo 'aa=bb:cc//10.10.10.1:21/abc' | sed 's/10.10.10.1:21/10.10.0.2:21/'
原帖由 ruifox 于 2008-11-14 15:34 发表
呵呵!是俺错怪你了!
sed -n '/aa/s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}:21/10.10.10.1:20/p' file
原帖由 ILoveMK 于 2008-11-14 15:52 发表
sed -n "/([0-9]+\.?)\{4\}/"p test.sh
不明白为什么我这条命令找不出任何东西?
test.sh:
aa=bb:cc//10.10.10.1:21/abc
原帖由 ppiandy 于 2008-11-14 16:04 发表
也就是说要取[^/]或者[^/]*后边的值必须有一个实际的字符做定位是么?
它俩可以理解为以/为分隔的前面或者后面的字符串,不包括/本身
原帖由 ynchnluiti 于 2008-11-14 16:33 发表
[^/]匹配非/字符,但没说个数。需要用?, +, *, {n,m}等修饰
[^/]* 是0个或多个非/字符
[^/]+ 是1个或多个非/字符
[^/]*会一直匹配到/的前一个字符(找不到/时匹配到行尾)。不包括/。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |