所以我把它作为我的数据文件
Account Number ena5LHtEj Name ena5LHtEj Account Type ena5LHtEj Balance
1 ena5LHtEj foo ena5LHtEj 1 ena5LHtEj 100
1 ena5LHtEj foo ena5LHtEj 1 ena5LHtEj 100
1 ena5LHtEj foo ena5LHtEj 1 ena5LHtEj 100
第1行是列名。 ena5LHtEj
是随机生成的分隔符。其他3行是行。这是我正在运行的命令
column -t -s "$delimiter" data
分隔符变量的值为ena5LHtEj
,这是它给出的输出
Accou Numb r N m Accou Typ B l c
1 foo 1 100
1 foo 1 100
1 foo 1 100
1 foo 1 100
因此行正确解析,但列标题不会被解析。这不是因为标题名称中的空格,因为我尝试删除空格。只有第一行和第二行之间的差异是宽度。我正在使用bash在ubuntu终端上运行它。
这是它应该给予/我想要的东西
Account Number Name Account Type Balance
1 foo 1 100
1 foo 1 100
1 foo 1 100
1 foo 1 100
答案 0 :(得分:2)
你的麻烦来自误解,分隔符不是字符串而是一组字符;每个(不是“按给定顺序排列”)都是可能的分隔符。因此,“数字”之类的东西会在“e”处分开,因为“e”是“ena5LHtEj”的一部分。
试试这个:
column -t -s "|" <(sed 's/ena5LHtEj/|/g' < data)
将您所拥有的字符串分隔符转换为单字符分隔符(在本例中为|
)。结果就是您在问题中指定的内容。