ChinaUnix.net
相关文章推荐:

sed 正则 匹配数字

[code] # tail -f /var/log/myout.log |sed -n '/.*301.*Moved.*Permanently/ {n;s#.*test.com/user/\(.*\)/my.jpg\(\?l=.\)#\1\2#p}' 275/8280275/2337999/jpg/5518681?l=h 865/8450865/2381058/jpg/5507828?l=a 96/2162096/1135051/jpg/5518743?l=i 827/6478827/2165863/jpg/5140518?l=j 709/2617709/846298/jpg/5518038?l=j 658/2239658/600160/jpg/5518692?l=h 766/2532766/1854003/jpg/5517944?l=h 971/8017971/2042696459/j...

by hover_sky - Shell - 2011-10-12 12:51:36 阅读(4949) 回复(10)

相关讨论

例如: echo "1234(123)23(345)"|sed "s/(\([0-9]*\))[^(]*/\1 /g" 1234123 345 echo "1234(123)23(345)"|sed "s/(\([0-9]*\))[^(]*/\1 /g" 1234---》不是匹配[^(]* 么?有先后顺序么

by aimar111 - Shell - 2012-12-27 17:11:19 阅读(1406) 回复(6)

文本数据为:[code]{ "$aaa" : 132321343 },{ "$bbb" : "3dsefsdfcdseadf" } { "$bbb" : 1232834232 },{ "$bbb" : "aabcdedsdfe3231ac" }[/code]需要取出结果为: 132321343 3dsefsdfcdseadf 1232834232 aabcdedsdfe3231ac 求匹配写法

by ljwd1000 - Shell - 2011-10-25 09:59:41 阅读(2457) 回复(8)

比如下面一行: testcase 3 this和3之间是任意个空格或者tab,用 ^testcase[\t]*$ 只能匹配到3前面的, 用 ^testcase[\t]*3$ 无法匹配。 求指教。

by password636 - Shell - 2010-07-06 12:58:54 阅读(3418) 回复(10)

../192.168.16.11_2012-04-11.log:2012-04-11 01:09:46 218.47.22.195 - HTTP 172.20.36.11 80 GET /dianping/default.aspx cccasasdsadasdsadaaccccc 比如要将以上web日志中的IP地址和url路径保留下来,其余部分全部替换为空,该怎么写呢?

by 青蛙咕啦咕啦 - Shell - 2012-04-11 16:16:38 阅读(1323) 回复(2)

[code] 1111222 123 11122 1234 1122 12345 12 123456 [/code] sed "/12/d" test.sh > test.tmp 我本想删除12这一行的,但是全删了, 我明白是sed正则匹配的时候全都匹配上了,但是这个正则我该如何写只匹配12这一行的 [ 本帖最后由 cltnet 于 2010-1-4 14:37 编辑 ]

by cltnet - Shell - 2010-01-05 16:21:40 阅读(3475) 回复(12)

echo "a^b"|sed -n '/^a^b/p' echo "a^b"|sed -n '/^a\^b/p' echo "a^b"|sed -nr '/^a\^b/p' 三个执行结果都为:a^b 而 echo "a^b"|sed -nr '/^a^b/p' 显示为空 在用了扩展正则后,最后一个中的 ^b表示什么意思??

by curclew - Shell - 2008-07-17 10:55:45 阅读(2420) 回复(15)

我想问个sed则表达式向前匹配(?=:)问题,将下文中的手机号前面的字符替换为Mob 我这样写的不行:sed ‘s/.*\(?=1[0-9]\{10\}\)/Mob/g’ 大家帮忙看看有什么问题,谢谢 13611101656 13816303336 13580433634 13453464969 13391079350 13701134661

by spouter - Shell - 2008-01-15 18:05:16 阅读(6219) 回复(12)

问题如下: 文本a 的内容为: asfs callback=12345&abcde&sfd 执行 sed 's/callback=.*&//g' a 结果是asfs sfd 而不是 asfs abcde&sfd 问题: 这是因为 callback=.*匹配上了 callback=12345&abcde 然后callback=.*&中的&匹配上了文本中这行的最后一个&? 这里的.*为何匹配 12345&abcde ,而不是 12345?是因为 .*代表了任意长度的任意字符?最长匹配

by glq2000 - Shell - 2012-07-11 11:52:11 阅读(11954) 回复(14)

打个比方,一段文本中的某一行,如下 777798567 aaaa897897890 bbb87978879 7865765744ttuyu 我想把不在行首的数字串的最后四位替换成0000,替换完应该是 777798567 aaaa897890000 bbb87970000 7865760000ttuyu sed -r 's/([0-9]{3,})[0-9]{4}/\10000/g' filenme > new_file 这样的话就变成 777790000 aaaa897890000 bbb87970000 7865760000ttuyu 可是我不想匹配行首的数字串,咋办呢?

by sunfeii - Linux环境编程 - 2013-07-12 04:27:01 阅读(2159) 回复(3)

本帖最后由 tomasea 于 2011-06-21 15:56 编辑 请问一下 在sed里面如何匹配到开头不是以“#”开头的行 并且在开头非“#”的行首加上“#”,这个需求 那位大侠帮忙解决一下

by tomasea - Shell - 2011-06-21 16:21:11 阅读(2106) 回复(7)