study by example 1

背景

需求产生的原因:今有一商户,有这个月每日的销量数据,想知道两个特定日期的销量,比如说10号和13号。这个时候用眼睛一扫就可以知道结果了。但是,如果需要在一年的数据中,找到给定的多个日期的销量,那么应该如何找呢?

使用到的文件

year.txt

2019/12/13	1
2019/12/14	2
2019/12/15	3
2019/12/16	4
2019/12/17	5
2019/12/18	6
2019/12/19	7
2019/12/20	8
2019/12/21	9
2019/12/22	10
2019/12/23	11
2019/12/24	12
2019/12/25	13
2019/12/26	14
2019/12/27	15
2019/12/28	16
2019/12/29	17
2019/12/30	18
2019/12/31	19
2020/1/1	20
2020/1/2	21
2020/1/3	22
2020/1/4	23
2020/1/5	24
2020/1/6	25
2020/1/7	26
2020/1/8	27
2020/1/9	28

day.txt

2019/12/20
2019/12/31

方案1 linux的join

由于默认是按照第一列进行排序,所以不需要使用参数即可。但是需要注意的是,join操作的两个文件需要按照一定的方式进行排序。

➜  scripts join year.txt month.txt
2019/12/20 8
2019/12/31 19

方案2 linux中的gawk

使用gawk就没那么多限制了,排序不排序的都无所谓了。

➜  scripts for line in $(cat month.txt); do gawk -v month=$line '$1 == month {print $0}' year.txt; done
2019/12/20	8
2019/12/31	19
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值