Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将不同文本文件中的数据与Shell中的数据进行比较和打印。_Bash_Shell_Unix_Join_Awk - Fatal编程技术网

Bash 如何将不同文本文件中的数据与Shell中的数据进行比较和打印。

Bash 如何将不同文本文件中的数据与Shell中的数据进行比较和打印。,bash,shell,unix,join,awk,Bash,Shell,Unix,Join,Awk,如何将不同文本文件中的数据与Shell中的数据进行比较和打印 我使用SSH捕获了三个不同框的NAS详细信息,现在我需要将所有三个文本文件合并到一个文件中,挂载名称应位于第一列,如果三个框中存在相同的挂载,则应以同一行打印,如果挂载仅在框B和框C中显示,则挂载名称应出现在第一列中,框A的列应保持空白 让我们举两个例子df_-BoxA.txt和df_-BoxB.txt和df_-BoxC.txt 例如: $cat df_BoxA.txt /logs/boxA 2G 1.2G

如何将不同文本文件中的数据与Shell中的数据进行比较和打印

我使用
SSH
捕获了三个不同框的
NAS
详细信息,现在我需要将所有三个文本文件合并到一个文件中,挂载名称应位于第一列,如果三个框中存在相同的挂载,则应以同一行打印,如果挂载仅在框B框C中显示,则挂载名称应出现在第一列中,框A的列应保持空白

让我们举两个例子df_-BoxA.txtdf_-BoxB.txtdf_-BoxC.txt

例如:

$cat df_BoxA.txt  
/logs/boxA      2G     1.2G     7.7G    62%             NAS:/logs/boxA
/data/boxA      2G     1.8G     2.0G    91%             NAS:/data/boxA 
/apps/boxA      2G     1.4G     5.7G    72%             NAS:/apps/boxA 
/data/java      1G     67M      9.3G    7%              NAS:/data/java
/home/admin     10G    4.6G     54G     46%             NAS:/home/admin
/admin/arch     10G    8.3G     19G     83%             NAS:/admin/arch
/apps/dist      10G    8.3G     19G     83%             NAS:/apps/dist



$cat df_BoxB.txt  
/logs/boxA      2G     1.2G     7.7G    62%             NAS:/logs/boxB
/data/boxA      2G     1.8G     2.0G    91%             NAS:/data/boxB 
/apps/boxA      2G     1.4G     5.7G    72%             NAS:/apps/boxB 
/home/user      40G    29.3G    107G    74%             NAS:/home/user1 
/data/java      1G     67M      9.3G    7%              NAS:/data/java
/home/admin     10G    4.6G     54G     46%             NAS:/home/admin
/apps/dist      10G    8.3G     19G     83%             NAS:/apps/dist


$cat df_BoxC.txt  
/logs/boxA      2G     1.2G     7.7G    62%             NAS:/logs/boxC
/data/boxA      2G     1.8G     2.0G    91%             NAS:/data/boxC 
/apps/boxA      2G     1.4G     5.7G    72%             NAS:/apps/boxC 
/home/user1     40G    29.3G    107G    74%             NAS:/home/user1 
/home/admin     10G    4.6G     54G     46%             NAS:/home/admin
/admin/arch     10G    8.3G     19G     83%             NAS:/admin/arch
/apps/dist      10G    8.3G     19G     83%             NAS:/apps/dist
合并所有三个文件后,结果应该如下

$cat result.txt 
/logs/boxA   2G     1.2G     7.7G    62% NAS:/logs/boxA 2G  1.2G  7.7G  62% NAS:/logs/boxB  2G   1.2G  7.7G  62% NAS:/logs/boxC
/data/boxA   2G     1.8G     2.0G    91% NAS:/data/boxA 2G  1.8G  2.0G  91% NAS:/data/boxB  2G   1.8G  2.0G  91% NAS:/data/boxC
/apps/boxA   2G     1.4G     5.7G    72% NAS:/apps/boxA 2G  1.4G  5.7G  72% NAS:/apps/boxB  2G   1.4G  5.7G  72% NAS:/apps/boxC 
/data/java   1G     67M     9.3G    7%   NAS:/data/java 1G  67M   9.3G  7%  NAS:/data/java
/home/admin  10G    4.6G     54G     46% NAS:/home/admin10G 4.6G  54G   46% NAS:/home/admin 10G  4.6G  54G   46% NAS:/home/admin
/admin/arch  10G    8.3G     19G     83% NAS:/admin/arch                                    10G  8.3G  19G   83% NAS:/admin/arch
/apps/dist   10G    8.3G     19G     83% NAS:/apps/dist 10G 8.3G  19G   83% NAS:/apps/dist  10G  8.3G  19G   83% NAS:/apps/dist
/home/user                                              40G 29.3G 107G  74% NAS:/home/user1 
/home/user1                                                                                 40G  29.3G 107G  74% NAS:/home/user1
我尝试过使用
pr
命令,该命令将不符合要求结果的文件组合在一起

还尝试使用
sdiff
,但无法获得结果

有谁能给我建议一下,或者给我一些建议

谢谢, Vardhan

尝试通过“sort | uniq”管道过滤“cat”:

这个怎么样:

paste df_BoxA.txt df_BoxB.txt df_BoxC.txt
manpaste
了解更多详细信息

paste df_BoxA.txt df_BoxB.txt df_BoxC.txt