私のファイルにはおおよそ以下が含まれています。
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
fc
diff <file_new> <file_old>
UnixとLinuxでは、commandやie commandなどのウィンドウを試すことができます。
それら+++
または---
変更された前の行となし+'s
および-'s
変更されていない行
署名された行は-
新しいファイルから削除されますが、以前のバージョンには存在します。
署名された行は+
新しいファイルに追加されましたが、以前のバージョンのファイルにはありませんでした。
Linux表記
Linux>
は<
>
古いファイルの行を表します。
<
新しいファイルの古いファイルで変更された行を示します。