2016-03-22 6 views
0

PFBシナリオ。私は2つのファイル行ごとに比較:UNIXで2つのファイル

file1の

firstName1 LastName1 
FirstName2 LastName2 

File2の

FirstName1 LastName1 
FirstName2 LastName2 

は、今私はFILE2のそれとFILE1のFIRSTNAME2さんを比較したい持っています。一致する場合は、File1のLastName1とFile2のLastName1を比較します。

これらの値のいずれかがmachでなければ、レコードをログファイルに書き込む必要があります。

これを済ませたら、2番目のレコードに移動します。

は、いくつかのいずれかは、標準のUNIX以下......それに

+0

最初に:ようこそ。これはあなたと一緒になってお手伝いをするかもしれません:http://stackoverflow.com/help/how-to-ask質問に答えるには['diff'](http://man7.org/linux/man-pages/man1/ diff.1.html)はあなたが必要とするツールです –

答えて

0

を使用し、いくつかの洞察を置くことができ、このpageも差分とsdiffの違いを理解するのに役立ちます

diff 
sdiff 

を指令します。

また、2つのファイルのレコードを比較するスクリプトを作成することもできます。

0

diffはファイルが正しくフォーマットされていると仮定すると、あなたが何をしたいのために最善であるが、ここであなたが事態のようなものでより多くのアクションが必要な場合はスニペットです

./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つのファイルを引数 'cat $ 1'で最初のファイル(引数)を読み込み、後で' cat $ 2'を2番目のファイル(引数)のスクリプト。私はそれを編集してより明確になった。 –

関連する問題