Bash 每个文件中的行不';合并两个文件时,t显示在同一行中
我在使用ubuntu“join”命令合并两个文件时遇到问题。这困扰了我一个星期。实际上我经常使用这个命令来编辑文件,这是我第一次遇到这个问题。我有两个文件如下所示(例如,此处分隔的空间): 文件1Bash 每个文件中的行不';合并两个文件时,t显示在同一行中,bash,shell,ubuntu,join,sed,Bash,Shell,Ubuntu,Join,Sed,我在使用ubuntu“join”命令合并两个文件时遇到问题。这困扰了我一个星期。实际上我经常使用这个命令来编辑文件,这是我第一次遇到这个问题。我有两个文件如下所示(例如,此处分隔的空间): 文件1 A A A B B B ... 文件2 这些文件有20多列,数百行(utf-8字符集,制表符分隔)。我使用join命令根据第一列合并两个文件。结果应该是这样的: A A A D D B B B E E join -1 3 -2 1 -o 1.1,1.2,1.3,1.4,2.2,2.3,2.4 -
A A A
B B B
...
文件2
这些文件有20多列,数百行(utf-8字符集,制表符分隔)。我使用join命令根据第一列合并两个文件。结果应该是这样的:
A A A D D
B B B E E
join -1 3 -2 1 -o 1.1,1.2,1.3,1.4,2.2,2.3,2.4 -t $'\t' <(sort -k3,3 file1) <(sort -k1,1 file2)
paste -d"\t" file1 file2
但我明白了:
A A A
D D
B B B
E E
我尝试输出两个文件,然后使用“粘贴”命令合并,得到了相同的结果。此外,我在每行的第一行/结尾没有看到任何换行符。我尝试了sed-I的/\n\t/\t/g文件。它不起作用。
他们还是不在同一条线上!你们以前见过他的问题吗?可能的原因是什么
我的命令如下所示:
A A A D D
B B B E E
join -1 3 -2 1 -o 1.1,1.2,1.3,1.4,2.2,2.3,2.4 -t $'\t' <(sort -k3,3 file1) <(sort -k1,1 file2)
paste -d"\t" file1 file2
join-1 3-2 1-o 1.1,1.2,1.3,1.4,2.2,2.3,2.4-t$”\t“在您的问题中我没有看到任何join
命令……请将join命令放入您的问题中(格式为代码)。好的,我已经使用此join命令很长时间了,这是我第一次遇到这个问题。file file1 file2
对文件有什么说明?@Neng:您指定tab作为join
的字段分隔符,但将其设置为sort
命令的空格。我不明白这是如何解释这个结果的,但它确实看起来很奇怪。我在你的问题中没有看到任何join
命令……将join命令放入你的问题中(格式为code)。好的,我已经使用这个join命令很长时间了,这是我第一次遇到这个问题。file file1 file2
对文件有什么说明?@Neng:您指定tab作为join
的字段分隔符,但将其设置为sort
命令的空格。我不明白这是如何解释这个结果的,但它确实看起来很奇怪。