我在Emacs上使用orgmode并希望使用cron调度自动更新orgmode文件的某些部分。
我知道如何让cron作业在我选择的时间运行,但现在我面临选择要更改的文件的某些部分的问题。
我想每天在文件中的某个位置增加数字(比如每天凌晨3点或某事)。
所以说我有文件fruit.org:
* Apple
age: 2
* Bananas
age: 1
A really bad fruit
* Cranberry
* Death
* Easter
A cool day
我想在年龄之后选择所有数值,然后每天递增它们。我该如何选择和替换。我相信它会涉及正则表达式和一些工具(也许是awk),但我从那时起就相对无能为力。
答案 0 :(得分:1)
在awk
中,您可以说:
awk '/age:/ { $2++ } { print }' foo.org
如果您有最新版本的GNU awk
,则可以使用选项-i inplace
就地编辑该文件。否则,只需执行常规操作,即重定向到临时文件,然后替换原始文件:
awk '/age:/ { $2++ } { print }' foo.org > foo.org.tmp && mv foo.org{.tmp,}
这基本上就是awk
或sed
的现场选项在幕后所做的事情。