将两列文件合并为一个文件

将两列文件合并为一个文件

我有一堆包含两列的文件(file1file2file3...)。例如,file1看起来像:

0.12 0
0.32 0
0.42 1
0.23 0

看起来file2像:

0.34 1
0.55 1
0.31 1
0.99 0

我想知道如何正确地将这些文件合并到只有第一列的一个文件中。输出文件应该是这样的:

0.12 0.34
0.32 0.55
0.42 0.31
0.23 0.99

我最初的(不成功的)尝试在这里:

pr -t -s ',' -m <(< file1 | cut -d ' ' -f 1) <(< file2 | cut -d ' ' -f 1)

答案1

由于文件数量很大,awk 听起来是一个不错的选择:

awk '
    {line[FNR] = line[FNR] $1 OFS}
    END {for (i=1; i<=FNR; i++) print line[i]}
' file1 file2 file3 ...

答案2

简单的方法:

$ cat file1
0.12 0
0.32 0
0.42 1
0.23 0
$ cat file2
0.92 0
0.92 0
0.92 1
0.93 0
$ cat file1 file2 | cut -f1 -d" "
0.12
0.32
0.42
0.23
0.92
0.92
0.92
0.93
$

相关内容