免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3385 | 回复: 16
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-12 11:38 |只看该作者 |倒序浏览
是这样的。我有个文件为a,内容如下,大概10W条记录,
13516624449
13942476350
13591367492
13798180344
13951100217
13930583596
13953880576
13592823661
13925345286
13802694862
13822908512
13824740333
13928114205
文件b,内容如下,第一列为开始号码,第2列为结束号码,文件a的号码若属于
文件b的开始号码与结束号码之间的(例如13620400000   13620429999这组号码之间所有号码)都要求提取出来。。(文件b大概有2000行)真的不知道怎样实现哦。。大家帮帮看。。

13620400000 13620429999
13502240000 13502249999
13502400000 13502419999
13570000000 13570599999
13502440000 13502469999
13500000000 13500039999
13500220000 13500229999
13501470000 13501489999
13501500000 13501549999
13503000000 13503099999
13509280000 13509299999
13509940000 13509949999

论坛徽章:
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
2 [报告]
发表于 2004-08-12 12:44 |只看该作者

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

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

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

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

[quote]原帖由 "waker"]( awk '{print "a",$1}' a; awk '{print  "b",$1;print "b1",$2}')|sort -k2| sed -n '/b/,/b1/{s/a //p}'[/quote 发表:


那个s是什么。。提示说
sed: -e expression #1, char 17: Unknown option to 's'

论坛徽章:
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
4 [报告]
发表于 2004-08-12 13:21 |只看该作者

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

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

论坛徽章:
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
5 [报告]
发表于 2004-08-12 13:23 |只看该作者

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

基本功还没练好,写东西经常出问题,见谅

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

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


  1. for i in $(<a);do
  2.     awk '$1<'"$i"'&&$2>'"$i"'{print '"$i"'}' b
  3. done
复制代码

论坛徽章:
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
7 [报告]
发表于 2004-08-12 13:29 |只看该作者

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

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

还只可以简化,另外a改为c好像更好一点儿,要不a中的号码和b中有相等的可能漏掉

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

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

大哥。。谢谢您。。或许我没描述清楚了。。
我是想从b文件里提取a文件里的号码。但b文件里的号码还包括
起始号码段与结束号码段之间的所有号码。
例如:(13620400000  13620429999 )里包括
13620400000
13620400001
13620400002
13620400003
。。。
。。。
。。。
13620429999
而每一组都是这样

论坛徽章:
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
9 [报告]
发表于 2004-08-12 13:33 |只看该作者

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

bjgirl少写了cat吧?

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

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

原帖由 "bjgirl" 发表:

for i in $(a);do
    awk '$1<'"$i"'&&$2>'"$i"'{print '"$i"'}' b
done



出现-bash: a: command not found
我用的是linux系统哦。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP