免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk在BEGIN中,一次把文件中所有数据都加载到数组中,以便于处理第二个文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-01-12 17:46 |只看该作者 |倒序浏览
本帖最后由 linlone 于 2017-01-12 17:49 编辑

下面是工作时间的范围:

  1. $ head -250 worktime.txt
  2. 2016-01-01 09:00
  3. 2016-01-01 10:00
  4. 2016-01-01 11:00
  5. 2016-01-01 12:00
  6. 2016-01-01 13:00
  7. 2016-01-01 14:00
  8. 2016-01-01 15:00
  9. 2016-01-01 16:00
  10. 2016-01-01 17:00
  11. 2016-01-01 18:00
  12. 2016-01-04 09:00
  13. 2016-01-04 10:00
  14. 2016-01-04 11:00
  15. 2016-01-04 12:00
  16. 2016-01-04 13:00
  17. 2016-01-04 14:00
  18. 2016-01-04 15:00
  19. 2016-01-04 16:00
  20. 2016-01-04 17:00
  21. 2016-01-04 18:00
  22. 2016-01-05 09:00
  23. 2016-01-05 10:00
  24. 2016-01-05 11:00
  25. 2016-01-05 12:00
  26. 2016-01-05 13:00
  27. 2016-01-05 14:00
  28. 2016-01-05 15:00
  29. 2016-01-05 16:00
  30. 2016-01-05 17:00
  31. 2016-01-05 18:00
  32. 2016-01-06 09:00
  33. 2016-01-06 10:00
  34. 2016-01-06 11:00
  35. 2016-01-06 12:00
  36. 2016-01-06 13:00
  37. 2016-01-06 14:00
  38. 2016-01-06 15:00
  39. 2016-01-06 16:00
  40. 2016-01-06 17:00
  41. 2016-01-06 18:00
  42. 2016-01-07 09:00
  43. 2016-01-07 10:00
  44. 2016-01-07 11:00
  45. 2016-01-07 12:00
  46. 2016-01-07 13:00
  47. 2016-01-07 14:00
  48. 2016-01-07 15:00
  49. 2016-01-07 16:00
  50. 2016-01-07 17:00
  51. 2016-01-07 18:00
  52. 2016-01-08 09:00
  53. 2016-01-08 10:00
  54. 2016-01-08 11:00
  55. 2016-01-08 12:00
  56. 2016-01-08 13:00
  57. 2016-01-08 14:00
  58. 2016-01-08 15:00
  59. 2016-01-08 16:00
  60. 2016-01-08 17:00
  61. 2016-01-08 18:00
  62. 2016-01-11 09:00
  63. 2016-01-11 10:00
  64. 2016-01-11 11:00
  65. 2016-01-11 12:00
  66. 2016-01-11 13:00
  67. 2016-01-11 14:00
  68. 2016-01-11 15:00
  69. 2016-01-11 16:00
  70. 2016-01-11 17:00
  71. 2016-01-11 18:00
  72. 2016-01-12 09:00
  73. 2016-01-12 10:00
  74. 2016-01-12 11:00
  75. 2016-01-12 12:00
  76. 2016-01-12 13:00
  77. 2016-01-12 14:00
  78. 2016-01-12 15:00
  79. 2016-01-12 16:00
  80. 2016-01-12 17:00
  81. 2016-01-12 18:00
  82. 2016-01-13 09:00
  83. 2016-01-13 10:00
  84. 2016-01-13 11:00
  85. 2016-01-13 12:00
  86. 2016-01-13 13:00
  87. 2016-01-13 14:00
  88. 2016-01-13 15:00
  89. 2016-01-13 16:00
  90. 2016-01-13 17:00
  91. 2016-01-13 18:00
  92. 2016-01-14 09:00
  93. 2016-01-14 10:00
  94. 2016-01-14 11:00
  95. 2016-01-14 12:00
  96. 2016-01-14 13:00
  97. 2016-01-14 14:00
  98. 2016-01-14 15:00
  99. 2016-01-14 16:00
  100. 2016-01-14 17:00
  101. 2016-01-14 18:00
  102. 2016-01-15 09:00
  103. 2016-01-15 10:00
  104. 2016-01-15 11:00
  105. 2016-01-15 12:00
  106. 2016-01-15 13:00
  107. 2016-01-15 14:00
  108. 2016-01-15 15:00
  109. 2016-01-15 16:00
  110. 2016-01-15 17:00
  111. 2016-01-15 18:00
  112. 2016-01-18 09:00
  113. 2016-01-18 10:00
  114. 2016-01-18 11:00
  115. 2016-01-18 12:00
  116. 2016-01-18 13:00
  117. 2016-01-18 14:00
  118. 2016-01-18 15:00
  119. 2016-01-18 16:00
  120. 2016-01-18 17:00
  121. 2016-01-18 18:00
  122. 2016-01-19 09:00
  123. 2016-01-19 10:00
  124. 2016-01-19 11:00
  125. 2016-01-19 12:00
  126. 2016-01-19 13:00
  127. 2016-01-19 14:00
  128. 2016-01-19 15:00
  129. 2016-01-19 16:00
  130. 2016-01-19 17:00
  131. 2016-01-19 18:00
  132. 2016-01-20 09:00
  133. 2016-01-20 10:00
  134. 2016-01-20 11:00
  135. 2016-01-20 12:00
  136. 2016-01-20 13:00
  137. 2016-01-20 14:00
  138. 2016-01-20 15:00
  139. 2016-01-20 16:00
  140. 2016-01-20 17:00
  141. 2016-01-20 18:00
  142. 2016-01-21 09:00
  143. 2016-01-21 10:00
  144. 2016-01-21 11:00
  145. 2016-01-21 12:00
  146. 2016-01-21 13:00
  147. 2016-01-21 14:00
  148. 2016-01-21 15:00
  149. 2016-01-21 16:00
  150. 2016-01-21 17:00
  151. 2016-01-21 18:00
  152. 2016-01-22 09:00
  153. 2016-01-22 10:00
  154. 2016-01-22 11:00
  155. 2016-01-22 12:00
  156. 2016-01-22 13:00
  157. 2016-01-22 14:00
  158. 2016-01-22 15:00
  159. 2016-01-22 16:00
  160. 2016-01-22 17:00
  161. 2016-01-22 18:00
  162. 2016-01-25 09:00
  163. 2016-01-25 10:00
  164. 2016-01-25 11:00
  165. 2016-01-25 12:00
  166. 2016-01-25 13:00
  167. 2016-01-25 14:00
  168. 2016-01-25 15:00
  169. 2016-01-25 16:00
  170. 2016-01-25 17:00
  171. 2016-01-25 18:00
  172. 2016-01-26 09:00
  173. 2016-01-26 10:00
  174. 2016-01-26 11:00
  175. 2016-01-26 12:00
  176. 2016-01-26 13:00
  177. 2016-01-26 14:00
  178. 2016-01-26 15:00
  179. 2016-01-26 16:00
  180. 2016-01-26 17:00
  181. 2016-01-26 18:00
  182. 2016-01-27 09:00
  183. 2016-01-27 10:00
  184. 2016-01-27 11:00
  185. 2016-01-27 12:00
  186. 2016-01-27 13:00
  187. 2016-01-27 14:00
  188. 2016-01-27 15:00
  189. 2016-01-27 16:00
  190. 2016-01-27 17:00
  191. 2016-01-27 18:00
  192. 2016-01-28 09:00
  193. 2016-01-28 10:00
  194. 2016-01-28 11:00
  195. 2016-01-28 12:00
  196. 2016-01-28 13:00
  197. 2016-01-28 14:00
  198. 2016-01-28 15:00
  199. 2016-01-28 16:00
  200. 2016-01-28 17:00
  201. 2016-01-28 18:00
  202. 2016-01-29 09:00
  203. 2016-01-29 10:00
  204. 2016-01-29 11:00
  205. 2016-01-29 12:00
  206. 2016-01-29 13:00
  207. 2016-01-29 14:00
  208. 2016-01-29 15:00
  209. 2016-01-29 16:00
  210. 2016-01-29 17:00
  211. 2016-01-29 18:00
  212. 2016-02-01 09:00
  213. 2016-02-01 10:00
  214. 2016-02-01 11:00
  215. 2016-02-01 12:00
  216. 2016-02-01 13:00
  217. 2016-02-01 14:00
  218. 2016-02-01 15:00
  219. 2016-02-01 16:00
  220. 2016-02-01 17:00
  221. 2016-02-01 18:00
  222. 2016-02-02 09:00
  223. 2016-02-02 10:00
  224. 2016-02-02 11:00
  225. 2016-02-02 12:00
  226. 2016-02-02 13:00
  227. 2016-02-02 14:00
  228. 2016-02-02 15:00
  229. 2016-02-02 16:00
  230. 2016-02-02 17:00
  231. 2016-02-02 18:00
  232. 2016-02-03 09:00
  233. 2016-02-03 10:00
  234. 2016-02-03 11:00
  235. 2016-02-03 12:00
  236. 2016-02-03 13:00
  237. 2016-02-03 14:00
  238. 2016-02-03 15:00
  239. 2016-02-03 16:00
  240. 2016-02-03 17:00
  241. 2016-02-03 18:00
  242. 2016-02-04 09:00
  243. 2016-02-04 10:00
  244. 2016-02-04 11:00
  245. 2016-02-04 12:00
  246. 2016-02-04 13:00
  247. 2016-02-04 14:00
  248. 2016-02-04 15:00
  249. 2016-02-04 16:00
  250. 2016-02-04 17:00
  251. 2016-02-04 18:00
复制代码


下面是任务的起始时间和结束时间:
  1. $ cat begin_end.txt
  2. 2016-01-15 11:55        2016-01-15 19:14
  3. 2016-01-29 11:12        2016-02-25 18:17
  4. 2016-02-16 17:27        2016-02-22 10:33
  5. 2016-03-01 11:36        2016-03-04 17:41
  6. 2016-03-07 19:18        2016-03-09 17:36
  7. 2016-03-09 17:01        2016-03-15 16:42
  8. 2016-03-09 18:10        2016-03-11 19:17
  9. 2016-03-10 15:37        2016-03-11 19:19
  10. 2016-03-13 15:48        2016-04-20 17:53
  11. 2016-03-24 11:02        2016-03-29 17:17
  12. 2016-03-27 20:46        2016-03-27 20:46
  13. 2016-03-30 14:38        2016-03-31 16:15
  14. 2016-04-13 19:35        2016-04-14 15:35
  15. 2016-04-20 10:30        2016-04-21 15:42
  16. 2016-05-06 17:32        2016-05-10 18:41
  17. 2016-05-11 15:46        2016-05-12 12:10
  18. 2016-05-17 01:09        2016-05-17 01:09
  19. 2016-05-24 19:35        2016-06-03 15:31
  20. 2016-06-01 18:13        2016-06-03 15:34
  21. 2016-06-06 16:12        2016-06-06 17:31
  22. 2016-06-12 19:28        2016-06-13 15:39
  23. 2016-06-15 14:09        2016-06-15 17:50
  24. 2016-06-16 16:56        2016-06-16 19:07
  25. 2016-06-23 10:07        2016-06-27 17:29
  26. 2016-06-29 16:36        2016-06-29 19:32
  27. 2016-06-29 16:37        2016-06-30 17:10
  28. 2016-07-06 12:27        2016-07-06 19:12
  29. 2016-07-06 19:41        2016-07-12 14:16
  30. 2016-07-08 13:53        2016-07-22 16:36
  31. 2016-07-12 16:12        2016-07-22 15:14
  32. 2016-07-13 18:22        2016-07-13 18:22
  33. 2016-07-24 17:54        2016-07-26 18:52
  34. 2016-07-26 11:02        2016-07-28 16:49
  35. 2016-08-08 18:31        2016-08-11 17:44
  36. 2016-08-15 11:39        2016-08-15 15:54
  37. 2016-08-18 14:11        2016-08-23 16:03
  38. 2016-09-27 19:11        2016-10-24 17:05
  39. 2016-10-25 16:48        2016-10-26 15:39
  40. 2016-10-27 16:10        2016-10-27 16:52
  41. 2016-11-02 16:04        2016-11-02 16:29
  42. 2016-11-04 10:29        2016-11-08 17:40
  43. 2016-11-09 10:30        2016-11-11 15:18
  44. 2016-11-15 10:43        2016-11-15 16:38
  45. 2016-11-15 14:46        2016-11-17 10:56
  46. 2016-11-16 19:46        2016-11-17 19:40
  47. 2016-11-17 11:41        2016-11-17 14:27
  48. 2016-11-21 19:34        2016-11-22 16:12
  49. 2016-11-23 15:07        2016-11-23 18:20
  50. 2016-11-28 18:28        2016-11-30 18:31
  51. 2016-11-30 16:32        2016-12-01 17:10
  52. 2016-12-05 11:18        2016-12-06 16:24
  53. 2016-12-22 11:14        2016-12-23 21:52
复制代码


我期望:
如果任务起始时间和结束时间包含了worktime.txt中的时间,则删除,最后worktime.txt中剩下的时间都是不在任务期间的


论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
2 [报告]
发表于 2017-01-12 22:32 |只看该作者

  1. awk 'NR==FNR{a[$0];next}{for(i in a){match(i,/([^:]+:\S+)\s+(.*:\S+)/,b);if($0>=b[1]&&$0<=b[2])next}}1' begin_end.txt worktime.txt
复制代码

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2017-01-13 01:10 |只看该作者
  1. perl -anle 'if(@ARGV){push(@a,["@F[0,1]","@F[2,-1]"]);next}next if(grep{"@F" ge $_->[0] and "@F" le $_->[-1]}@a);print' begin_end.txt worktime.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP