Mon dossier se compose des éléments suivants; grossièrement:
username:username:username:username:username
La ligne ci-dessus continue à environ 600 caractères.
J'utilise la commande awk
afin de l'utiliser comme argument dans une requête API/HTTP envoyée depuis la ligne de commande.
J'utilise mon script pour obtenir une liste des comptes d'utilisateurs qui me suivent, et toutes les 24 heures environ, en comparant la liste d'origine sur mon disque dur à la liste des noms d'utilisateurs nouvellement sortie (et faisant écho à qui ne me suit plus. Je vais devoir encapsuler ma logique dans une boucle en utilisant bash .. tester chaque nom d'utilisateur.
Mon script actuel:
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
Ma question est;
Comment puis-je afficher la différence entre 2 fichiers?
L'utilitaire que vous recherchez est diff
. Jetez un œil au manuel pour plus de détails.
Étant donné deux fichiers contenant des listes d'utilisateurs non triés, par exemple.
In file1:
userD
user3
userA
user1
userB
et
In file2:
user3
userB
userX
user1
puis pour obtenir une liste simple des utilisateurs dans file1
mais pas dans file2
, tu peux faire
$ comm -23 <(sort file1) <(sort file2)
userA
userD
et de même pour obtenir les utilisateurs dans file2
mais pas dans file1
$ comm -13 <(sort file1) <(sort file2)
userX
Si les fichiers de liste sont déjà triés, ceux-ci peuvent être simplifiés en comm -23 file1 file2
et comm -13 file1 file2
respectivement.
La meilleure commande pour voir la différence dans le contenu des fichiers serait
vim -d file1 file2
diff [options] from-file to-file
diff
compare le contenu des deux fichiers from-file et to-file. Vous pouvez spécifier le -i
option qui ignore les changements de casse; considérer l'équivalent des majuscules et des minuscules.
Pour plus d'informations, vous pouvez consulter ce lien: http://www.computerhope.com/unix/udiff.htm ou vous pouvez consulter la page de manuel.
vous pouvez essayer les mêmes fenêtres que la commande fc
sous Unix et Linux, c'est-à-dire diff <file_new> <file_old>
commande.
Aligner avec +++
ou ---
devant eux ont changé et un sans +'s
et -'s
n'a pas changé
Lignes avec -
le signe est supprimé du nouveau fichier mais il existait dans l'ancienne version
Lignes avec +
le signe est ajouté à partir du nouveau fichier mais il n'existait pas dans l'ancienne version du fichier
notation Linux
Linux utilise >
et <
>
signifie la ligne de l'ancien fichier <
signifie la ligne du nouveau fichier qui est modifiée dans l'ancien fichier
Choisissez vimdiff pour Afficher les différences entre deux, trois ou quatre versions d'un même fichier.