有很多情况我们希望能一次性修改多个文件中的某个字符串。比如最近七牛的测试域名回收了,我把图床换到了腾讯云,需要把所有博客文章中的图片链接改成新的。一个命令搞定。
1 | $ sed -i s/OLDURL/NEWURL/g `grep -rl OLDURL DIR/*` |
通过 grep 递归查找目录下的所有文件,并把含有某字符串的文件都列出来,然后把这些文件名作为 sed 的参数。sed 默认是把修改结果打印到标准输出,用 -i
让它直接修改文件。
$ chmod +x mylife
有很多情况我们希望能一次性修改多个文件中的某个字符串。比如最近七牛的测试域名回收了,我把图床换到了腾讯云,需要把所有博客文章中的图片链接改成新的。一个命令搞定。
1 | $ sed -i s/OLDURL/NEWURL/g `grep -rl OLDURL DIR/*` |
通过 grep 递归查找目录下的所有文件,并把含有某字符串的文件都列出来,然后把这些文件名作为 sed 的参数。sed 默认是把修改结果打印到标准输出,用 -i
让它直接修改文件。
I’ve been using Ledger CLI for a year now. It’s really a feature-rich command-line double-entry accounting tool, but the only one thing missed is data visualization. Although Ledger has a report script, it’s not very useful for me and the default output of Gnuplot is ugly. So I spent some time digging into Gnuplot and made 6 scripts based on Ledger’s original one.
近日被老婆问及,为什么放着大把的记账 app 不用,要用 Ledger CLI 这么奇葩的东西来记账?其实,这个问题从本质上可以变成:为什么要用复式记账?于是,我用了几个简单的例子向老婆做了解释,顺道在此记录一下。
本文不从专业的会计角度,而是通过生活中记账的实际需求出发,来阐明复式记账的含义及优点。不求全面专业,但求简明易懂。
我们记账的目的之一是追踪资产的变动。所以一般的流水账(单式记账)都是从资产的角度出发的。比如,11 月 18 日我在超市买了一盒巧克力,花了 30 元,刷的超市卡。那么,可以记录如下:
日期 | 备注 | 超市卡 |
---|---|---|
期初余额 | 200 | |
11.18 | 超市买巧克力 | -30 |
结余 | 170 |
同理,我们也可以为现金、银行卡等资产建立相应的账户,以方便我们随时了解资产状况,查询支出。比如第二天我又去超市买了一块香皂,花了 5 元,付的现金。那么,我们可以在原来的表格上加上一笔记录:
日期 | 备注 | 超市卡 | 现金 |
---|---|---|---|
期初余额 | 200 | 100 | |
11.18 | 超市买巧克力 | -30 | |
结余 | 170 | ||
11.19 | 超市买香皂 | -5 | |
结余 | 95 |
像这样的流水账方式在记录上一点问题也没有,但当我们需要统计支出的时候就麻烦了。比如,我希望知道这个月我在“食品”上花了多少钱,我要一条条去找记录,把用在食品上的钱拎出来加总,记录少倒还好,一旦记录多了不仅费时费力而且容易遗漏。不过,办法也是有的,就像众多的记账 app 所做的那样,加一栏支出类别。于是,上面的表格可以变成这样(为了方便整月统计,暂且去掉结余行):
日期 | 备注 | 支出类别 | 超市卡 | 现金 |
---|---|---|---|---|
期初余额 | 200 | 100 | ||
11.18 | 超市买巧克力 | 食品 | -30 | |
11.19 | 超市买香皂 | 生活用品 | -5 |
这样我们统计支出的时候相对来说就方便了点,只要把相同的类别相加即可。但如果有许多条记录,而且无序穿插着各种类别,若不借助电子表格的自动筛选功能,依然是十分低效的。要知道,几百年前可没有电脑,前人可就是用表格形式记在纸上的!要在几百条记录中筛选出相同的类目进行统计,这显然并非最佳方案。于是,前人再次用智慧改进了记录方式。
最近学习了 Bullet Journal(子弹笔记,简称 BuJo),深深感觉它真的是数字时代让人有欲望重新拿起纸笔记录的一项伟大发明。这种笔记方式不仅简单明了,而且很有意思,可以适用于很多场景。我已将 Bullet Journal 全面应用于生活和工作中了。
本文是我在学习使用 Bullet Journal 过程中的一些思考,以及我个人在实际使用过程中的一些改进,并不是一篇介绍文章或入门文章。不知道 Bullet Journal 是什么的同学请稳步官网,那里有要学习使用 Bullet Journal 所需要了解的一切。
在我看来,Bullet Journal 的精髓要义主要有以下三点:
Bullet Journal 中所有的笔记都是条目式的,并且都是一句简单的陈述句,一般就是一行字。快速记录我认为至少有三个好处。一是方便记录。这个时代恐怕没有人愿意花很多时间在书写上,条目式的记录既方便又高效。二是让人有欲望记录。如果是长篇大论,恐怕写一两天还可以,每天都这样有几个人能坚持?而条目式地快速记录,要求记录者对信息有个提炼,这本身也是件比较有意思的事情。三是方便查阅。相比写起来方便,看起来方便更重要。只有看起来方便,才会时时翻阅,才会把写下来的东西落到实处。而且,Bullet Journal 看上去确实非常赏心悦目,这也归功于另一精髓——子弹符号。
说是子弹符号 (Bullets),英文里其实就是无序列表 (Bulleted list) 中的项目符号的意思。(所以,Bullet Journal 更贴切的翻译可能应该是“条目式日志”,说起来,其实与柳比歇夫时间统计法有几分类似呢。)Bullet Journal 正是在列表的项目符号中做了创新,不仅可以标识任务、事件活动、一般笔记条目,甚至可以标识出任务的不同状态(已完成、已排入日程或延期)。这真是一个相当强大的特性,而且设计得也极为科学。举个例子来说,为什么延期的任务用大于号表示,已排入日程的任务用小于号表示?因为我们一般书写的习惯是从左往右,从前往后的。所以每个月的月历后面,是当月各日的记录,再后面开始新的一月。而大于号的箭头向右,意指这个任务往后移了;小于号向左的箭头意指要往前翻,翻到当月月历那一页去看这个任务具体被排到哪一天了。
通常一本笔记本写完后留下一堆乱糟糟的笔记,可能永远不会去翻看了。而 Bullet Journal 让我们在每一页都写上页码,并在笔记本最开始填上目录。这不仅方便日后查看,更为作笔记这件事增加了一种仪式感。一本笔记本写完之后,得到的将是一本我们自己亲手书写的书籍!
我把 Bullet Journal 的四大模块概括为四个录:
Bullet Journal 最好的地方在于它并不是一种固定的方法,而是可以根据实际需要调整或改进的。我在使用过程中就做了一些改进。
A Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. – John Gruber
当我们在谈论 Markdown 的时候,我们到底在谈论什么?是 CommonMark 还是 GitHub Flavored Markdown,抑或是最初发明时的那个 Markdown?
当我第一次知道 Markdown 的时候,我的内心是欣喜的,心想这个世界除了复杂的 HTML 标签以外居然还有如此简单的标记。但当我知道它有好几种风格的时候,我的内心是拒绝的,因为我不知道应该遵循哪一种写法,不知道我写的 Markdown 是否能适用于其他场景。这种不确定性造成的纠结和担忧一度使我不想使用 Markdown,但如此简洁的设计又让人欲罢不能。现在又正式将博客换成了 Hexo,于是便义无反顾的跳入这个坑了。既然这样,那就好好考虑考虑以下几个问题。
两只小脚支撑着滚圆的身体,头上两个大铃铛,铃铛中间是一把小锤子……那是我儿时记忆中的小闹钟,那是我还睡在父母中间的时候。
那是一只机械闹钟,需要定期上发条才会走时。雕花一样精致的指针“si-so-si-so”十分有力地在十二个大写罗马数字间穿梭。小闹钟除了表盘玻璃外全身银白色,应该是不锈钢材质,加上内部都是机械结构,小闹钟对于儿时的我来说很重,上发条更是掰断手指都没用。可幼小的我却拥有一颗男子汉的心,偏要和它较劲,硬是强行拧下来它一只球形的小脚,哼!但是装回去,却怎么也不能像从前一样严实了。
我是看着这小闹钟认识的罗马数字,那些数字有的像建筑,有的像一个个人,还有的像沙漏,换个角度看,又是不一样的东西。儿时的我经常盯着表盘陷入想象,仿佛有种魔力,能带我回到纷乱的古罗马战场。
时间就这样“si-so-si-so”地流转,指针依旧在十二个大写罗马数字之间循环往复,而我却无法永远停留在十二岁,正如父母的婚姻也无法永远停留在十二年前一样。
家庭的变故令我产生了许多困惑,好长一段时间里经常郁郁寡欢,甚至在夜里哭泣。也是在那一段时间里,生父不知从哪儿弄了条小狗,见我欢喜,便送给我养。据说小狗喜欢听那小闹钟的声音,便将小闹钟也一并给我带回了。当时外婆与我们母子住在一起帮手,也没养过狗,都不知道带出去溜,导致小狗把便便拉在出租房的阳台,因为那里就是它的活动空间。放学回去我会去阳台看看它,但它与我不甚友善,宁愿自己待在自己的纸箱狗窝里,与小闹钟为伴。我想,也许是因为它与家人分离,所以才显得困惑而郁郁寡欢吧。没过多久,有天我放学回家,外婆告诉我狗被我生父拿回去了,也许是吃了,也许是卖了,也许本来就是别人的要还给人家,具体我也不得而知。反正,我也没有什么留恋。
那只小闹钟,也就这么从我的生活中消失了,兴许是坏了扔了,兴许是当时和小狗一起被拿回去了,我不得而知,但我想,应该是后者。
现在,我也买了一个机械闹钟,圆形的身体上有两个大铃铛,铃铛中间是一把小锤子,上好发条也是“si-so-si-so”地走,也还是那样的厚重。不同的是它是纯铜材质,暗黄的颜色更显复古。但记忆中的小闹钟是再也买不到一模一样的了。