Mik*_*ail 5 linux sorting bash file
我有3个文本文件c.dat,n.dat并且h.dat
内容类似,采用这种格式
c.dat n.dat h.dat
1 0.ccc 3 1.nnn 1 2.hhh
2 0.ccc 4 1.nnn 2 2.hhh
4 0.ccc 5 1.nnn 5 2.hhh
Run Code Online (Sandbox Code Playgroud)
期望的输出:
1 0.ccc Inf 2.hhh
2 0.ccc Inf 2.hhh
3 Inf 1.nnn Inf
4 0.ccc 1.nnn Inf
5 Inf 1.nnn 2.hhh
6 Inf Inf Inf
7 ....
Run Code Online (Sandbox Code Playgroud)
每个文件有大约100行,但它们并不总是从1开始,并且不总是连续的.
我需要通过第一列对齐3个文件,这样如果其他文件没有它,它就会填充NA,NaN或Inf ......等等.
谢谢!
awk '
{
if(FNR==1){f++}
a[$1,f] = $2
if($1 > max){max = $1}
}
END{
for(j=1;j<=max;j++){
printf("%d\t", j)
for(i=1;i<=f;i++){
if(!a[j,i]){printf("Inf\t")}
else{printf("%s\t", a[j,i])}
}
printf("\n")
}
}' ./c.dat ./n.dat ./h.dat
Run Code Online (Sandbox Code Playgroud)
$ ./awk.dat
1 0.ccc Inf 2.hhh
2 0.ccc Inf 2.hhh
3 Inf 1.nnn Inf
4 0.ccc 1.nnn Inf
5 Inf 1.nnn 2.hhh
Run Code Online (Sandbox Code Playgroud)