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

时间:2012-08-26 19:08:05

标签: linux bash shell unix formatting

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

2 个答案:

答案 0 :(得分:13)

理论上,要指定换行符,可以使用$'...'表示法,就像'...'一样,只不过它支持C样式的转义序列:

column -t -s $'\n' list-of-entries.txt

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

column -t -s '' list-of-entries.txt

表示输入将被视为只有一列;所以它相当于根本不使用column

cat list-of-entries.txt

看起来你实际上想要使用-t标志,因为-t标志的目的是确保每行输入变成一个输出线,听起来不像你想要的那样。我猜你想要这个:

column list-of-entries.txt

list-of-entries.txt的每一行视为要放在column输出的表格的一个单元格中的值。

答案 1 :(得分:6)

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

column -t -s $'\t' list-of-entries.txt