免费注册 查看新帖 |

Chinaunix

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

用shell能够实现两个数字之间取值呢?? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-08-12 13:40 |只看该作者

用shell能够实现两个数字之间取值呢??

原帖由 "carefen" 发表:



出现-bash: a: command not found
我用的是linux系统哦。。

见我的签名

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
12 [报告]
发表于 2004-08-12 13:41 |只看该作者

用shell能够实现两个数字之间取值呢??

cat a b | sort | uniq -d

论坛徽章:
0
13 [报告]
发表于 2004-08-12 13:44 |只看该作者

用shell能够实现两个数字之间取值呢??

还没有实现。。。
bjgirl你用的也是linux。。
我也是。但我用你写的代码出现-bash: a: command not found

论坛徽章:
0
14 [报告]
发表于 2004-08-12 13:52 |只看该作者

用shell能够实现两个数字之间取值呢??

for i in $(<a);do
....
ps:不保证能正确执行,只是一个思路而已

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
15 [报告]
发表于 2004-08-12 13:56 |只看该作者

用shell能够实现两个数字之间取值呢??

如果你的b文件是
13620400000 13620429999
13502240000 13502249999
13502400000 13502419999
13570000000 13570599999
13502440000 13502469999
13500000000 13500039999 这们的格式


( awk '{print "c",$1}' a; awk '{print "b",$1;print "b1",$2}' b)|sort -k2| sed -n '/b/,/b1/s/c //p'

和bjgirl的都你
bjgirl的应该是  for i in $( cat a) ............

如果你的b文件是
13620400000
13620400001
13620400002
13620400003 的格式


cat a b | sort | uniq -d

论坛徽章:
0
16 [报告]
发表于 2004-08-12 14:06 |只看该作者

用shell能够实现两个数字之间取值呢??

waker。您好。我的b文件格式的确是
13620400000 13620429999
13502240000 13502249999
13502400000 13502419999
13570000000 13570599999
13502440000 13502469999
13500000000 13500039999格式
但目的是想变成
13620400000
13620400001
13620400002
13620400003
后,再提取与a文件相同的用户即
cat a b | sort | uniq -d

论坛徽章:
0
17 [报告]
发表于 2004-08-13 00:28 |只看该作者

用shell能够实现两个数字之间取值呢??

这些都不现实.  

算一算 10W 行数据, 每个平均比较 1000 次 要多少时间?

建议:

1. 用 C or perl

2. 只比较五位

     如  50244 之于13502440000, 这样只比较一个数而不是两个.

     例如:  13xxxxx1234  
            if xxxxx=50244,  那么 13xxxxx1234  一定位于 13502440000 及 13502449999 之间.

3. 对于被比较的 2000行数据
   
     a. 先处理为五位并排序.
     b. 形成二分查找的比较文件. (最多 11 次比较得到结果)
     c.  将上述比较文件数据全部读入 memory 之 hash 表中.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP