我处理大量制表符分隔的数据文件,其中有不同长度的列。
通常,人们查看这些文件的方式是将它们从服务器下载到他们的 Windows 或 Mac 机器上,然后在 Excel 中打开它们。这当然是功能齐全的,允许过滤和其他不错的选项。但有时,您只想在命令行上快速查看某些内容。
我编写了一个基本的实用程序来显示<n>
文件的第一行,如下所示:
--- 第 1 行 ---
1:{header-1} 2:{header-2} 3:...
--- 第 2 行 ---
1:{数据-1} 2:{数据-2} 3:...
显然,这是非常蹩脚的,但它足以通过 grep 进行管道传输,或者找出在哪些标题列上使用“cut -f”。
是否存在基于 *nix 的终端会话查看器,它可以显示制表符分隔文件的行和列,并允许您将查看窗口移动到文件上,或者以其他方式查看数据?
我不想自己写这个;相反,我只想做一个重新格式化程序,用空格代替制表符作为填充,这样我就可以在 emacs 中打开文件并看到对齐的列。但如果已经有工具可以做这样的事情,那就太好了!
(或者,我也可以只使用 Excel。)
答案1
有一个 Unix 文本模式电子表格,名为sc
这可能适合您使用。您可能需要传递文件psc
以将其转换为使用的文件格式sc
。
答案2
这可以输出制表符分隔文件的漂亮打印版本。
column -t -s $'\t' list-of-entries.txt
答案3
在 vim 中打开文件,并将制表位设置为较高的值,这样列就会对齐。如果您不熟悉 vim,请先启动它:
vim some_file.csv
然后将制表位设置为某个较高的值,这样列就会对齐。输入:
:set tabstop=20
如果行太长,您还应该关闭换行,这样您可以横向滚动而不是让文本换行:
:set nowrap
移动:有多种方式,但最简单的方式(如箭头键和 pgup/pgdown/home/end)就可以了。其他一些有用的移动命令:
CTRL+U: move half screen up
CTRL+D: move half screen down
gg: move to top
G: move to bottom
您可以按照与 man 中相同的方式搜索文本:
/regular_expression (search forward)
?regular_expression (search backward)
然后输入“n”查找下一个匹配项,输入“N”查找上一个匹配项。
如果您的终端支持,您也可以使用鼠标导航,然后输入:
:set mouse=a
编辑:我忘了你可以使用以下命令退出:
:q (if you haven't changed the text)
:wq (to save it before quitting)
:q! (to abandon changes)
答案4
pr
允许你使用 将制表符扩展为给定数量的空格-e
。不要忘记传递,-t -T
这样它就不会实际上格式化整个页面以供打印。