join 用空格替换制表符

oli*_*win 3 bash join

我试图加入两个csv文件,排序,并使用制表符分隔符。

我是这个join命令的新手,所以我不太确定如何使用它,但它似乎用空格替换了文件中的每个选项卡(弄乱了对齐方式)。

我使用的命令是:

join -1 5 -2 2 -t $'\t' -o $order --header file1.csv file2.csv | 
column -t > result.csv
Run Code Online (Sandbox Code Playgroud)

在第一个文件中,数据按照第5列和第二个文件中的第 2列进行排序。该变量$order是一个简单的字符串,包含不同的列'1.1 1.2 1.3'等(其中28个)。我使用的分隔符来自 SE。

你知道这是从哪里来的吗?

Kus*_*nda 6

joinwith-t作为分隔符使用的字符将用于输入和输出。

问题column -t在于您使用的后处理步骤。它将用适当数量的空格替换制表符以很好地对齐列。如果要保留 输出中的选项卡join,请不要通过 传递数据column -t

column -t用于表格数据的最终(视觉)呈现。