背景
需求產生的原因:今有一商戶,有這個月每日的銷量數據,想知道兩個特定日期的銷量,比如說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