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