【发布时间】:2018-05-01 04:31:34
【问题描述】:
假设我有一个这样的文件:
apple 2018-01-01
apple cider 2018-01-05
apple cider 2017-01-06
lemon 2016-12-30
lemon 2017-12-31
lemon juice 2018-03-12
lemon pie 2018-03-30
即,它有 1 个或多个文本列,然后是一个日期。对于 [不同] 日期,一些文本条目会重复。现在,我想删除这些重复项:
apple 2018-01-01
apple cider 2017-01-06
lemon 2016-12-30
lemon juice 2018-03-12
lemon pie 2018-03-30
无论是在一列中,都可以使用this solution。但是,如果我必须通过正则表达式查找重复项,而不是查看特定列,该怎么办? awk 可以处理这个吗?还是有其他解决方法?
谢谢。
【问题讨论】:
-
请解释为什么需要正则表达式。
-
删除重复项的标准是什么???应该保留哪个值?
-
@Allan,如果日期之前的文本与该日期之前的先前存在的文本重复,则应将其删除。
-
@agc,好吧,我认为使用正则表达式(如
^([A-Za-z ]*)\d+)更容易捕获日期之前的文本(这是要检查是否有重复的文本)。如果这不是必需的并且还有其他方法,那么我全力以赴,并感谢您的提示:)。
标签: regex shell awk substitution