免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xinxin12375
打印 上一主题 下一主题

昨天去腾讯现场招聘会,一上来就被问闷了。 [复制链接]

论坛徽章:
0
61 [报告]
发表于 2009-03-02 14:31 |只看该作者
原帖由 xinxin12375 于 2009-3-1 20:26 发表
本人毕业不到一年,在Linux下也没什么经验,以前在学校基本上没接触过linux,不过以后想在linux下发展,于是就去应聘Linux下的搜索工程师,简历上写了熟悉shell编程(呵呵,其实只是勉强知道一些),结果面试官一 ...



可以借用awk中的数组

论坛徽章:
0
62 [报告]
发表于 2009-03-02 14:31 |只看该作者
原帖由 zhangjiakouzf 于 2009-3-2 14:11 发表


那天我也去了,你是在深圳还是在北京?

他明确的说了让你用shell命令来实现了吗?如果没有的话,我觉得他在问算法!!

我那天没碰到这个问题,如果问我,我会说用 trie tree 来进行关键字统计,并其在 ...



最大堆啊, 这个问题面试管最爱问了

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
63 [报告]
发表于 2009-03-02 14:51 |只看该作者

回复 #1 xinxin12375 的帖子

没接触过linux就想着做linux工程师.....

论坛徽章:
0
64 [报告]
发表于 2009-03-02 15:01 |只看该作者
cat yy.txt|sort|uniq|awk -F: '{if (temp!=$1) {temp=$1;print "["$1"]\n"$2} else {print $2}}'

awk好像没有trim 功能
算法的话,最大堆,冒泡,选择都行

论坛徽章:
0
65 [报告]
发表于 2009-03-02 15:37 |只看该作者
原帖由 我是DBA 于 2009-3-1 20:40 发表
[test@erpdataserver ~]$ awk -v RS='[' '$1=$1{print "["$1,(NF-1)}' 1
[11235334] 2
[23432423] 1
[test@erpdataserver ~]$ cat 1
[11235334]
13454543454
13643543544
[23432423]
13654645542

看来awk很重要!一定要好好学学!

论坛徽章:
0
66 [报告]
发表于 2009-03-02 15:52 |只看该作者
awk '/^\[/{print i; print $1;i=0} /^[0-9]/{i=i+1} END{print i}' ufile

论坛徽章:
0
67 [报告]
发表于 2009-03-02 16:33 |只看该作者
以前理论过一阵子shell基础,没用应用过,看这个题目得到大家的帮场,自己顺便学习了一阵子,终于捣鼓出来了:

1.txt 内容
36234 13951820394
39423231 15204442938
123 1300000
36234 15900009999
19 13390904349
39423231 15344232123

awk语句:
awk '{qq[$1]=qq[$1]"\n"$2 }END{for(qq_number in qq) print "["qq_number"]",qq[qq_number]}' 1.txt

结果:
[36234]
13951820394
15900009999
[19]
13390904349
[39423231]
15204442938
15344232123
[123]
1300000

感觉还是多练习会收获大点。我主要参考了http://man.lupaworld.com/content/manage/ringkee/awk.htm#id2810128的教程,感觉很基本,很实用。

[ 本帖最后由 FightingWu 于 2009-3-2 16:35 编辑 ]

论坛徽章:
0
68 [报告]
发表于 2009-03-02 16:35 |只看该作者
自己学了4年还是初级

论坛徽章:
0
69 [报告]
发表于 2009-03-02 16:42 |只看该作者
cat yy.txt|sort|uniq|awk -F: '{if (temp!=$1) {temp=$1;print "["$1"]\n"$2} else {print $2}}'
---
很good

论坛徽章:
0
70 [报告]
发表于 2009-03-02 16:59 |只看该作者
[root@cos5test ~]# head qq.txt
22129:2453
17600:12824
16604:3711
5564:17160
23510:27559
22414:519
7718:22043
3779:10
7253:29538
29035:29505
[root@cos5test ~]# cat qqsplite.sh
#!/bin/bash

phones=""
count=1
lastqqnum=""
cat - | sort -n |
while read line
do
        qqnum=`echo $line|cut -d":" -f1`
        phonenum=`echo $line|cut -d":" -f2`
        [ -z ${lastqqnum} ] && phones=${phonenum}
        if [ ${qqnum}1 = ${lastqqnum}1 ]
        then
                phones="${phones}{phonenum}"
                count=`expr $count + 1`
        elif [ ! -z ${lastqqnum} ]
        then
                echo '['${lastqqnum}']:'$count
                echo ${phones}|tr ':' '\012'
                phones=${phonenum}
                count=1
        fi
        lastqqnum=${qqnum}
done
[root@cos5test ~]# cat qq.txt|./qqsplite.sh |head -n20
[8]:2
25897
25897
[16]:2
1989
1989
[25]:2
24946
24946
[38]:4
18698
18698
25608
25608
[53]:2
21357
21357
[56]:2
26753
26753
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP