[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---》不是匹配[^(]* 么?有先后顺序么
文本数据为:[code]{ "$aaa" : 132321343 },{ "$bbb" : "3dsefsdfcdseadf" } { "$bbb" : 1232834232 },{ "$bbb" : "aabcdedsdfe3231ac" }[/code]需要取出结果为: 132321343 3dsefsdfcdseadf 1232834232 aabcdedsdfe3231ac 求匹配写法
比如下面一行: testcase 3 this和3之间是任意个空格或者tab,用 ^testcase[\t]*$ 只能匹配到3前面的, 用 ^testcase[\t]*3$ 无法匹配。 求指教。
../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路径保留下来,其余部分全部替换为空,该怎么写呢?
[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 编辑 ]
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表示什么意思??
我想问个sed则表达式向前匹配(?=:)问题,将下文中的手机号前面的字符替换为Mob 我这样写的不行:sed ‘s/.*\(?=1[0-9]\{10\}\)/Mob/g’ 大家帮忙看看有什么问题,谢谢
问题如下: 文本a 的内容为: asfs callback=12345&abcde&sfd 执行 sed 's/callback=.*&//g' a 结果是asfs sfd 而不是 asfs abcde&sfd 问题: 这是因为 callback=.*匹配上了 callback=12345&abcde 然后callback=.*&中的&匹配上了文本中这行的最后一个&? 这里的.*为何匹配 12345&abcde ,而不是 12345?是因为 .*代表了任意长度的任意字符?最长匹配?
打个比方,一段文本中的某一行,如下 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 可是我不想匹配行首的数字串,咋办呢?
本帖最后由 tomasea 于 2011-06-21 15:56 编辑 请问一下 在sed里面如何匹配到开头不是以“#”开头的行 并且在开头非“#”的行首加上“#”,这个需求 那位大侠帮忙解决一下