免费注册 查看新帖 |

Chinaunix

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

[学习共享] 新人练手 - shell脚本编程-系统工程师面试题 [复制链接]

论坛徽章:
0
61 [报告]
发表于 2014-01-20 19:42 |只看该作者
我对shell的了解不够,只能用python来解决啦,话说面试时假如没指明要用shell的话,我用python应该不算犯规吧
第11题,文件整理
问题:
employee文件中记录了工号和姓名
bonus文件中记录工号和工资
要求把两个文件合并并输出如下, 处理结果:
  1. #! /usr/bin/env python
  2. #coding=utf-8
  3. import types
  4. fp01=open("employee.txt","r")
  5. a=[]
  6. for line01 in fp01:
  7.     a.append(line01)

  8. fp02=open("bonus.txt","r")
  9. for line02 in fp02:
  10.     i=0
  11.     while line02.split()[0]!=a[i].split()[0]:
  12.         i+=1
  13.     print "%s %s %s %s" % (line02.split()[0],a[i].split()[1],a[i].split()[2],line02.split()[1])

  14. fp01.close()
  15. fp02.close()
复制代码

论坛徽章:
0
62 [报告]
发表于 2014-01-20 20:22 |只看该作者
回复 61# cjyfff


    额。。。貌似题目要求输出文件按名字排序的,匆忙改了一下,写的很繁琐,看来还是awk简洁啊
  1. #! /usr/bin/env python
  2. #coding=utf-8
  3. import types
  4. fp01=open("bonus.txt","r")
  5. a=[]
  6. for line01 in fp01:
  7.     a.append(line01)

  8. fp02=open("employee.txt","r")

  9. fc02=sorted(fp02,key=lambda x:x.split()[1])

  10. for line02 in fc02:
  11.     i=0
  12.     while line02.split()[0]!=a[i].split()[0]:
  13.         i+=1
  14.     print "%s %s %s %s" % (line02.split()[0],line02.split()[1],line02.split()[2],a[i].split()[1])

  15. fp01.close()
  16. fp02.close()
复制代码

论坛徽章:
6
摩羯座
日期:2013-12-27 09:45:04技术图书徽章
日期:2014-01-27 12:40:06辰龙
日期:2014-02-28 15:12:52巳蛇
日期:2014-03-21 17:06:27未羊
日期:2014-04-15 20:12:41黑曼巴
日期:2016-08-02 11:00:06
63 [报告]
发表于 2014-01-22 10:16 |只看该作者
先mark一下,有空再看

论坛徽章:
0
64 [报告]
发表于 2014-01-22 15:45 |只看该作者
好高端的样子啊

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
65 [报告]
发表于 2014-01-23 09:29 |只看该作者
  1. for i in `seq -w 30`
复制代码
产生0-30的序列的方式,比用for循环从0-9再从10-30两段式的做法更优雅一点~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP