[英]How to compare two files, one has different fields and other is a c file, using shell script?
[英]How can I compare and print data from different text files to one in Shell.
如何比較不同文本文件中的數據並將其打印到Shell中。
我已經使用SSH
捕獲了三個不同框的NAS
詳細信息,現在我需要將所有三個文本文件組合為一個文件,並且MOUNT NAME應該在第一列中,如果在三個框中都存在相同的MOUNT ,則應該在其中打印如果MOUNT僅出現在BOX_B和BOX_C中,則MOUNT名稱應出現在第一列中,而Box_A的列應保留為空白
讓我們舉兩個例子df_BoxA.txt和df_BoxB.txt和df_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
但無法獲得結果。
有人可以建議我還是可以提出一些想法。
謝謝,瓦爾丹
嘗試通過“ sort | uniq”管道過濾“ cat”:
cat df_BoxA.txt df_BoxB.txt df_BoxC.txt | sort | uniq
這個怎么樣 :
paste df_BoxA.txt df_BoxB.txt df_BoxC.txt
man paste
以獲取更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.