无题

躺在水底 仰望 光影摇曳 扑朔迷离 就像 俯瞰众生

怎样可以连续做一百个俯卧撑

我一直有一个目标:连续做俯卧撑一百个。

我最早开始接触俯卧撑是在初中,那时在校外借宿,每天中午拿着饭盒到宿舍后,做的第一件事情就是做三十个俯卧撑再吃饭,最多的时候能连续做七十个。也就是从那个时候起,我的胸肌一直处于比一般同龄人大一圈的状态,但到了高中之后,就没有再坚持下去了。到了大学,偶尔心血来潮会试一下,快速的能做个三四十个,慢速的做十个都很费劲。这个状态,虽然与自己巅峰状态相去甚远,但跟身边的人比,也差不到哪里去。毕竟大家基本上都是死宅男,除了真三(那时候 dota 还没那么流行),就是武藤兰,剩下几个搞电子设计、算法竞赛的,一天到晚在实验室呆着。

但也有例外,正是在大学里,我才知道有人真的能连续慢速俯卧撑一百下,而且还是自己的同班同学。很多事情,其实你很早就知道不是什么稀奇的事,而一旦在你身边发生了,那感觉还是不一样的。但很遗憾,没有在大学里向他看齐,只是在心里埋下了一粒种子:其实我也可以做一百个,这东西并没有想象中那么遥远。

bash 中 while 循环的一个大坑

起因是这样的,我有一个常规的日志处理脚本,是最普通不过的 while read line;do XXXX;done<file 的应用场景。可是发现文件处理完后,该脚本并没有停止,仍在不停执行,准确点说,是死循环了。第一反应是想到是不是文件格式问题,导致在判断文件结束上出现了问题?但所有的文件都是在服务器上直接生成或创建的,不会存在这个问题。脚本通读了几遍,未果;无奈之下,只好祭出 bash -x 来。才发现,原来是在敲脚本时,不知怎么手抖了一下,在 while 和 do 语句之间,打上了个 echo 语句。这个就是罪魁祸首了,删掉后,脚本就恢复正常了。

如果就这么过去了,多没意思,我觉得有必要深究一下 while 的运行机制。

久旱逢甘雨:读《国家》有感

读完《易中天中华史之国家》,真有一种久旱逢甘雨的畅快之感。

历史书本来可以用三类来概括的,正史、野史和人教版课本。前两者历史久远,最后一个实在臭名昭著,从小学、初中、高中、大学、研究生,都只在说一件事情:没我哪有你。

但是现在,又有一类历史类书籍异常火爆,就是借历史上的一些故事来讲如何混社会。这种书我是绝不敢在公共场合下看的,怕我憨厚木讷的脸上突然多了四个字:老奸巨猾。

正儿八斤的历史类著作,读过吕思勉先生的《中国通史》和斯塔夫里阿诺斯的《全球通史》等。但这些书在读的时候总有一种中国与世界割裂开来的感觉,单纯的中国历史书籍自然不说,世界史类书籍也是如此。

sort 命令中 -k、-t 选项的用法

需求

假设有个 result_test_upload.log 的文件,里面存放着一些 FastDFS 系统中的 fileid。文本内容如下:

group1/M00/04/08/wKhwglHq1rqAYO2oAAAoAChSBpE0502682  
group2/M00/05/06/wKhwglHq2CGAIs8AAAAoAChSBpE9287977  
......(略)......  

如何统计出分配到每个 group 的文件的总和并将其按 group1、group2、group3 的顺序列出来,以方便观察是否所有的 fileid 均匀的分配到 FastDFS 的 group 中?

方法

cat result_test_upload.log  | grep -o group[0-9][0-9]*  | sort -n -t p -k 2| uniq -c  

其中,grep -o group-0-9][0-9].* 已经把每个 group 名截取出来了,sort -t p 表示以 p 为分隔,-k 2 表示按以 p 为分隔的第二个域来排序,也就是 group1、group2、group3…中的1、2、3。-n 选项则很简单,表示按照group1、group2、group3…groupn 的顺序排列。