将匹配和不匹配的列的值相加并写入不同的文件

将匹配和不匹配的列的值相加并写入不同的文件
DR_CNDAOFSZAPZP_GPFS_VOL.0      139264
DR_CNDAOFSZAPZP_GPFS_VOL.1      15657
DR_CNDAOFSZAPZP_GPFS_VOL.0      139264
DR_CNDAOFSZAPZP_GPFS_VOL.1      156579
DR_CNDAOFSZAPZP_GPFS_VOL.2      156579
DR_CNDAOFSZAPZP_GPFS_VOL.3      156579
DR_CNDAOFSZAPZP_GPFS_VOL.5      172236

输出文件1(具有匹配的服务器)

Server1                 Vzise
DR_CNDAOFSZAPZP_GPFS_VOL.0      278528
DR_CNDAOFSZAPZP_GPFS_VOL.1      172236

输出文件2(没有匹配的服务器)

DR_CNDAOFSZAPZP_GPFS_VOL.2      156579
DR_CNDAOFSZAPZP_GPFS_VOL.3      156579
DR_CNDAOFSZAPZP_GPFS_VOL.5      172236

答案1

$ awk '{Arr[$1]+=$2;Count[$1]++}END{for(i in Arr){if(Count[i]>1){print i,Arr[i] > "out_1"}else{print i,Arr[i] > "out_2"}}}' file1

$ ls -lrt
total 12
-rw-r--r--. 1 xxxxxxxxxxxxx yyyyyyyyyyyyyyyy 272 Nov 14 15:45 file1
-rw-r--r--. 1 xxxxxxxxxxxxx yyyyyyyyyyyyyyyy 102 Nov 14 15:48 out_2
-rw-r--r--. 1 xxxxxxxxxxxxx yyyyyyyyyyyyyyyy  68 Nov 14 15:48 out_1

$ cat out_1
DR_CNDAOFSZAPZP_GPFS_VOL.0 278528
DR_CNDAOFSZAPZP_GPFS_VOL.1 172236


$ cat out_2
DR_CNDAOFSZAPZP_GPFS_VOL.2 156579
DR_CNDAOFSZAPZP_GPFS_VOL.3 156579
DR_CNDAOFSZAPZP_GPFS_VOL.5 172236

相关内容