我有一堆包含两列的文件(file1
、file2
、file3
...)。例如,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
$