2つのファイルの違いをどのように出力しますか?

2つのファイルの違いをどのように出力しますか?

私のファイルにはおおよそ以下が含まれています。

username:username:username:username:username 

上記の行の長さは約600文字です。

このawkコマンドを使用して、コマンドラインから送信されたAPI / HTTP要求のパラメータとして使用します。

私は私のスクリプトを使って私を「フォローする」ユーザーアカウントのリストを取得し、約24時間ごとに自分のハードドライブの元のリストと新しく出力されたユーザー名のリストを比較します。もう私に興味を持たないエコ。私のロジックをループにカプセル化するには、bashを使用する必要があります。各ユーザー名をテストします。

私の現在のスクリプト:

user=$(awk -F: '{ print $1 }' FILE)  # Grab $User to use as an argument.  
following=$(exec CURRENT_FOLLOWERS) # Outputs the new file

echo "X amount of users are following you on 78B066B87AF16A412556458AC85EFEF66155"  

          SAVE CURRENT FOLLOWERS TO NEW A FILE.  


if [[ DIFFERENCE IS DETECTED ]] ; then    

          echo -ne "$User NO LONGER FOLLOWING YOU\r"

   else echo -ne "This user is following you still.\r"
fi

私の質問は。
2つのファイルの違いをどのように出力しますか?

答え1

ソートされていないユーザーのリストを含む2つのファイルが提供されます。

In file1:
    userD
    user3
    userA
    user1
    userB

そして

In file2:
    user3
    userB
    userX
    user1

file1次に、にあるが属していないユーザーの簡単なリストを取得するには、file2次の手順を実行します。

$ comm -23 <(sort file1) <(sort file2)
userA
userD

同様に、ユーザーは入力できますが、file2入力することはできません。file1

$ comm -13 <(sort file1) <(sort file2)
userX

リストファイルがすでにソートされている場合は、それらをそれぞれおよびcomm -23 file1 file2に単純化できますcomm -13 file1 file2

答え2

お探しのユーティリティについては、マニュアルをdiff参照してください。

答え3

ファイルの内容の違いを確認するための最良のコマンドは次のとおりです。

vim -d file1 file2

答え4

fcdiff <file_new> <file_old>UnixとLinuxでは、commandやie commandなどのウィンドウを試すことができます。

それら+++または---変更された前の行となし+'sおよび-'s変更されていない行

署名された行は-新しいファイルから削除されますが、以前のバージョンには存在します。

署名された行は+新しいファイルに追加されましたが、以前のバージョンのファイルにはありませんでした。

Linux表記

Linux><

>古いファイルの行を表します。 <新しいファイルの古いファイルで変更された行を示します。

関連情報