14

我将如何删除 taskwarrior 中所有已完成的重复任务,直到某个日期?

我试过了:

task Nevena until:07/29/2014 uuids

列出那些在该日期之前落下的人,并收集他们的 ID,这样我就可以通过管道将它们删除命令,但我没有得到预期的结果。

4

3 回答 3

10

我相信答案是删除父任务,然后将不再创建重复任务。您可以使用 显示所有父任务task all +PARENT。例如:

$ task all +PARENT

ID St UUID     Age  Done Tags R Due        Until Description                                     
21 R  58e83c9b 1.7y           R 2018-04-01       replace upstairs air filter                     
20 R  f8b5b0db 1.7y       [1] R 2018-04-01       replace upstairs air filter

我不知何故有两个重复的任务来做同一件事。我可以删除它们:

$ task delete 21 
Delete task 21 'replace upstairs air filter'? (yes/no) yes
Deleting task 21 'replace upstairs air filter'.
Deleted 1 task.
$
$ task delete 20
Delete task 20 'replace upstairs air filter'? (yes/no) yes
Deleting task 20 'replace upstairs air filter'.
Deleted 1 task.

现在重复的任务不应该再出现了。

于 2019-11-30T20:04:58.900 回答
9

拉了一会儿头发后,我找到了答案(警告:此命令也可能删除不重复的任务):

task $(task uuids due.before:now) delete

成功了。

这行得通,因为无论日期是什么,已完成的任务在未来都没有截止日期,所以这个命令使我当前的新任务保持不变,并带有截止日期。

于 2014-09-05T10:36:04.013 回答
0

命令

task $(task uuids due.before:now +CHILD +COMPLETED) delete

应该做你想做的事。

基于@branquito 的回答。

于 2021-02-18T00:06:15.610 回答