LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2267|回复: 19

一个Shell考题月薪¥5000

[复制链接]
发表于 2005-11-2 11:01:27 | 显示全部楼层 |阅读模式
有一纯文本日志文件log.txt,内容很多,超过30M,其中有2种记录最为重要,分别是程序分配内存和释放内存的日志,分别都有上千条。分配内存的日志记录格式为[MemAlloc]0xffff0000 释放内存的日志记录格式为[MemFree]0x0000ffff。
其中0x后面的是内存地址,地址是变化的。现在知道系统有内存泄漏,日志里记录有很多条[MemAlloc]和[MemFree],分别对应不同的地址。请编写一个shell脚本程序,将发生内存泄漏的[MemAlloc]及后面的地址保存到另一个文件leak.log中,如果有相同的地址发生多次泄漏,要leak.log中标注泄漏次数。
发表于 2005-11-2 12:24:39 | 显示全部楼层
月薪5000是啥意思?做出来这道题就一个月给5000?有这种好事?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-2 12:59:15 | 显示全部楼层
对呀。
而且是兼职
回复 支持 反对

使用道具 举报

发表于 2005-11-2 13:33:30 | 显示全部楼层
  1. cat log.txt | grep -E '(MemAlloc|MemFree)' | uniq -c
复制代码
哪家老板这么阔,钱多了发烧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-2 17:26:49 | 显示全部楼层
有兄弟想做麽?
uniq -c何解?
回复 支持 反对

使用道具 举报

发表于 2005-11-2 19:58:09 | 显示全部楼层
呵呵。
有这么便宜的事?
uniq -c ==

uniq --help:

Usage: uniq [OPTION]... [INPUT [OUTPUT]]
Discard all but one of successive identical lines from INPUT (or
standard input), writing to OUTPUT (or standard output).

长选项必须用的参数在使用短选项时也是必须的。
  -c, --count           prefix lines by the number of occurrences
  -d, --repeated        only print duplicate lines
  -D, --all-repeated[=delimit-method] print all duplicate lines
                        delimit-method={none(default),prepend,separate}
                        Delimiting is done with blank lines.
  -f, --skip-fields=N   avoid comparing the first N fields
  -i, --ignore-case     ignore differences in case when comparing
  -s, --skip-chars=N    avoid comparing the first N characters
  -t, --separator=SEP   use SEParator to delimit fields
  -u, --unique          only print unique lines
  -w, --check-chars=N   compare no more than N characters in lines
  -W, --check-fields=N  compare no more than N fields in lines
      --help     显示此帮助信息并离开
      --version  显示版本信息并离开

A field is a run of whitespace, then non-whitespace characters, unless
a SEParator is given.  Fields are skipped before chars.

Report bugs to <bug-coreutils@gnu.org>.
回复 支持 反对

使用道具 举报

发表于 2005-11-3 09:16:00 | 显示全部楼层
真的5000吗?不可能哦..我想对高手来说不难哦...不过我认为yongjian的答案不完整...(菜鸟乱说的别介意哦)
内存泄漏不是说所有的分配和释放的都是错误的吧...yongjian兄的是把所有的分配和释放的找出来了...如果再加个查找泄漏的话就可以了吧.....菜鸟的一点看法不知道对不对...
回复 支持 反对

使用道具 举报

发表于 2005-11-3 13:15:51 | 显示全部楼层
awk can easily solve this prob.
回复 支持 反对

使用道具 举报

发表于 2005-11-3 13:47:16 | 显示全部楼层
好难,不会,学习中……
回复 支持 反对

使用道具 举报

发表于 2005-11-3 14:00:06 | 显示全部楼层
Post by cscscheng
真的5000吗?不可能哦..我想对高手来说不难哦...不过我认为yongjian的答案不完整...(菜鸟乱说的别介意哦)
内存泄漏不是说所有的分配和释放的都是错误的吧...yongjian兄的是把所有的分配和释放的找出来了...如果再加个查找泄漏的话就可以了吧.....菜鸟的一点看法不知道对不对...

不是不完整,是过于完整。因为题目没有说清,只有将所有匹配项通通选出。如果题目将怎样判别泄漏的条件说清,完成不是问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表