*nix 中用于制表符分隔文件的终端窗口查看器?

*nix 中用于制表符分隔文件的终端窗口查看器?

我处理大量制表符分隔的数据文件,其中有不同长度的列。

通常,人们查看这些文件的方式是将它们从服务器下载到他们的 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这样它就不会实际上格式化整个页面以供打印。

相关内容