使用*nix中的column命令格式化列表

Dou*_*ers 14 unix linux bash shell formatting

我正在尝试格式化bash中的条目列表,并且正在使用该column命令.但是,该-t选项默认使用任何空格作为分隔符,这对我拥有的数据(它包含空格和制表符)不起作用.我无法弄清楚如何让-s标志指定换行符作为唯一的列分隔符.

rua*_*akh 13

理论上,要指定换行符,您可以使用$'...'符号,'...'除了它支持C样式的转义序列之外:

column -t -s $'\n' list-of-entries.txt
Run Code Online (Sandbox Code Playgroud)

但是,我真的不明白这个的目的.换行符是行分隔符,因此列分隔符$'\n'相当于根本没有任何列分隔符:

column -t -s '' list-of-entries.txt
Run Code Online (Sandbox Code Playgroud)

这意味着输入将被视为只有一列; 所以它相当于根本不使用column:

cat list-of-entries.txt
Run Code Online (Sandbox Code Playgroud)

好像你其实希望使用-t标志,因为目的-t标志,以确保输入的每一行变为一行输出,它听起来不像这就是你想要的.我猜你想要这个:

column list-of-entries.txt
Run Code Online (Sandbox Code Playgroud)

它将每行list-of-entries.txt作为一个值放在column输出表的一个单元格中.


too*_*o42 6

这适用于输出制表符分隔文件的漂亮打印版本

column -t -s $'\t' list-of-entries.txt
Run Code Online (Sandbox Code Playgroud)