2016-03-22 51 views
0

PFB該場景。我有兩個文件逐行比較:unix中的兩個文件

文件1

firstName1 LastName1 
FirstName2 LastName2 

文件2

FirstName1 LastName1 
FirstName2 LastName2 

現在我想與文件2的對比文件1的FIRSTNAME1。如果匹配,則比較file1的LastName1和File2的LastName1。

如果這些值中的任何一個沒有記錄,則記錄應寫入日誌文件。

一旦我們完成了這一步,移動到第二個記錄。

有人可以把一些洞察到它......

+0

第一:歡迎來到SO。這可能會幫助你與SO相處:http://stackoverflow.com/help/how-to-ask回答你的問題['diff'](http://man7.org/linux/man-pages/man1/ diff.1.html)是您需要的工具 –

回答

0

使用下列標準Unix命令

diff 
sdiff 

page也將有助於瞭解diff和那麼sdiff之間的差異。

您還可以編寫腳本來比較2個文件中的記錄。

0

差異是最適合你想做的事,但這裏是一個片段,如果你想在那種情況更多操作,假設文件的格式正確

./compare.sh <file1> <file2> 

compare.sh:

#!/bin/bash 

line_number=0 

cat $1 | while read line_f1; do 

    line_number=$((line_number + 1)) 

    line_f2=$(cat $2 | sed "${line_number}q;d") 

    echo "line f1 : ${line_f1}" 
    echo "line f2 : ${line_f2}" 

    firstname_f1=$(echo ${line_f1} | cut -f1 -d' ') 
    firstname_f2=$(echo ${line_f2} | cut -f1 -d' ') 
    lastname_f1=$(echo ${line_f1} | cut -f2 -d' ') 
    lastname_f2=$(echo ${line_f2} | cut -f2 -d' ') 

    echo "firstname f1 : ${firstname_f1}" 
    echo "firstname f2 : ${firstname_f2}" 
    echo "lastname f1 : ${lastname_f1}" 
    echo "lastname f2 : ${lastname_f2}" 

    if [ ! "${firstname_f1}" = "${firstname_f2}" ]; then 
     echo "Differents Firstnames" 
    fi 

    #... place here other tests ... 

done 
+0

嗨感謝您的回覆..這裏使用的文件名是什麼?是f1嗎?你的意思是貓$ 1在開始...先謝謝了.. –

+0

其實腳本把你的2個文件作爲參數'貓$ 1'將讀取第一個文件(參數),你有一個'cat $ 2'第二個文件(參數)的腳本。我編輯它,所以它更清楚。 –