我犯了一个错误,在一个按日期分区的表中添加了几百个部件文件。我可以看到哪些文件是新的(这些是我要删除的)。我在这里看到的大多数情况都与删除超过某个日期的文件有关,但我只想删除我最近的文件。
对于一天,我可能有3个这样的文件,我只想删除新文件。我可以看出它是新的,因为我使用hadoop fs-ls时有更新时间戳
/this/is/my_directory/event_date1_newfile_20191114
/this/is/my_directory/event_date1_oldfile_20190801
/this/is/my_directory/event_date1_oldfile_20190801
我有很多日期,所以我必须为event\u date2、event\u date3等完成此操作,总是从每个日期中删除“new\u file\u 20191114”。
旧的日期是2019年8月,我的新档案是昨天更新的,时间是11/14/19。
我觉得应该有一个简单/快速的解决方案,但我很难从大多数人所问的问题中找到相反的情况。
1条答案
按热度按时间chhqkbe11#
正如你在回答中提到的,你已经得到了需要删除的文件列表。创建一个简单的脚本,将输出重定向到temp文件
这样地
请注意排序-k6,7这将给出所有文件,但按时间戳的排序顺序。我确定你不想删除所有这样你就可以选择前n个文件,需要删除让我们说100
然后可以将命令更新为
或者,如果您知道新文件的具体时间戳,那么您可以尝试下面的命令
然后读取该文件并逐个删除所有文件
所以你完整的剧本可以是