我有一个这样的文件,将其命名为 file1
chr1 24018319 + a
chr1 24019249 + b
chr1 24020403 + c
chr1 24021281 + d
chr1 24022398 + e
chr1 45241272 + f
chr1 45241812 + g
chr1 45242446 + h
chr1 45243461 + I
chr1 45243801 + j
我还有一些其他输入文件。它们看起来像这样:
chr1 24018319 0 +
chr1 24019249 22.4309 +
chr1 24020403 64.302 +
chr1 24021281 20.9355 +
chr1 24022398 32.8987 +
chr1 45241272 1.49539 +
chr1 45241812 318.519 +
chr1 45242446 207.86 +
chr1 45243461 112.155 +
chr1 45243801 67.2927 +
与第一个文件 file1 相比,这些其他文件具有相同的行数。
我想将每个此类文件的第三列添加到第一个文件1(因为行相等),我尝试粘贴命令但它不起作用。
我想要这样的输出:
chr1 24018319 + a 0
chr1 24019249 + b 22.4309
chr1 24020403 + c 64.302
chr1 24021281 + d 20.9355
chr1 24022398 + e 32.8987
chr1 45241272 + f 1.49539
chr1 45241812 + g 318.519
chr1 45242446 + h 207.86
chr1 45243461 + I 112.155
chr1 45243801 + j 67.2927
我该怎么做。我试过这个
paste -d "\t" file $(cut -f 3 file2) $(cut -f 3 file3)
但这不起作用
谢谢
答案1
下面的命令在某种程度上生成您在示例中请求的输出,但不保留空格。
$ join -j 2 -o 1.1 1.2 1.3 1.4 2.3 file1 file2
chr1 24018319 + a 0
chr1 24019249 + b 22.4309
chr1 24020403 + c 64.302
chr1 24021281 + d 20.9355
chr1 24022398 + e 32.8987
chr1 45241272 + f 1.49539
chr1 45241812 + g 318.519
chr1 45242446 + h 207.86
chr1 45243461 + I 112.155
chr1 45243801 + j 67.2927
$