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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章