2つのファイルの違いを出力するにはどうすればよいですか?


11

私のファイルは以下で構成されています。おおよそ:

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つのファイルの違いを出力するにはどうすればよいですか?


について知っていますよdiffね?
schaiba 14

@schaibaありがとうございます。別のフォーラムでそれを見つけただけで、うまくいきます。その前に私はそれにつまずいたことがありませんでした。この回答が他のメンバーによる今後のクエリに役立つことを願っています。
2014

@schaibaが回答することもあります。ただし、フィールドではなく行で作業するdiffに対処してください。
terdon

回答:



13

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

In file1:
    userD
    user3
    userA
    user1
    userB

そして

In file2:
    user3
    userB
    userX
    user1

次に、のユーザーの簡単なリストを取得するにfile1file2、次のようにします

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

同様に、ユーザーを取得するfile2が、ではないfile1

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

リストファイルが既に並べ替えられている場合、これらcomm -23 file1 file2comm -13 file1 file2それぞれに簡略化できます。


1
comm分別せずに使用できますか?私のテキストファイルのような値があり120102000000010002使い方などはsort非ソートされます順序を...
Lanti


3

diff [options] from-file to-file

diff2つのファイルfrom-fileとto-fileの内容を比較します。大文字と小文字の違い-iを無視するオプションを指定できます。大文字と小文字を同等と見なしてください。

詳細については、次のリンクを参照してください。http//www.computerhope.com/unix/udiff.htmまたはマニュアルページを参照してください。


2

fcUnixとLinuxのcommand などの同じウィンドウを試すことができますdiff <file_new> <file_old>

+++または---彼らの前には変更なしで1している+'s-'s変更されていません

-符号付きの行は新しいファイルから削除されますが、古いバージョンには存在しました

+符号付きの行は新しいファイルから追加されますが、古いバージョンのファイルには存在しませんでした

Linux表記

Linuxは><

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.