表格快速分列 - 强势推出 - 高效且顺手的小工具

当你在terminal或者网页浏览中,你会遇到这种信息

而事实上,这些所谓human-readable的信息,第一点都不friendly,于是大牛们发明了SpreadSheet,你现在可以用以下的方式来查看

直观,便捷,格式化,是我们能一眼能看清更多信息。

写在前面

近期,我在做一些相对下游的分析,所以常常需要在Terminal (比如putty) 和Spreadsheet (比如Excel)之间切换。在一些情况下,这是一个相对麻烦的事情。
数据的快速分析,当然使用terminal会比较简单(或者从网页直接复制黏贴也简单);但是数据的浏览,最好的体验依然是在电子表格(Excel)让人舒服。建议不要跟我提linux下的column -t,说实话,他的功能很有限。而致命伤是,terminal屏幕的宽度有限的问题了。正如本文第一张配图。
所以往往,我的解决办法是,复制Terminal或者网页的文本,随后黏贴到Excel。但是这个过程就会有一个问题。我们很清楚,Terminal或者网页浏览器,往往会把制表符(tab)解析为四个或者八个空格,当我们直接复制到Excel时(默认不分列或制表符分列的情况下),会得到以下

事实上,我已经忘记excel是不是会有默认的制表符分列,不过生信数据分析过程中,制表符分列是 最常见的类型,所以如果Excel中没有打开这个选项,那么你可以自己打开(这里不展开,因为我相信这个选项是默认存在的)。
从上述表格来看,所有的信息都在第一列,因为我们并没有分列。有一些熟悉Excel的朋友,可能会采取修改Excel的分列规则为空格,但是这带来另一个问题,最后一列应该是一列的,结果也被分割了

说了这么多,我想说的是的,这些操作用着不爽,我们要有一个顺手的小工具。他必须能够:

  1. 自由且快速的分列,默认是空格分隔,用户可以指定其他分隔

  2. 指定分隔符的输出,默认是制表符分隔,用户可以指定,比如有人想要逗号

  3. 可以分隔为指定数目的列,比如上述情况,最后一列是不要分隔的

  4. 可以从末端开始分隔,假设3.的情况下,最后一列其实是第一列,那么我们需要从行的末端往前

  5. 支持文本或文件输入,同时也支持文本或文件输出,这样才方便

用半个小时写成这一功能

是的,如果我觉得不存在顺手的工具,那么我就会直接写一个。我自认为,这才是一个高效的工作方式,毕竟我们不应该为煮饭这件事情,总是捡柴烧柴火,对否?

使用起来非常方便,

1.从putty等terminal工具或者网页复制黏贴输入文本框 // 或者使用输入文件

2.点击Start即可在输出文本框中得到分隔后的文本 // 或者使用输出文件

这个时候,多列的空格都被转换为制表符分隔,可以直接复制黏贴到Excel等

我们发现,对于上述例子,确实是正常的分隔了,但是最后一列被多分了,所以我们可以通过指定分隔的列数目来使最后一列不分隔,

可以看到,现在最后一列就没有分割了。

当然,还可以指定输出分隔符,或者从最后一列开始分隔,不过这些使用频次可能不多,那么就不加以说明。

写在后面

生物信息,在命令行里?在for-loop里?在函数里?在模块里?还是在你脑子里?那么脑子,也是计算机吗?可以一目看清数据,还是获得信息?我想,只是前者。
工欲善其事,必先利其器。还是,祝大家科研顺利!

(0)

相关推荐