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 awk
commande 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 en faisant écho à qui ne suit plus moi . Je vais devoir résumer 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 produire la différence entre 2 fichiers?
diff
, non?Réponses:
L'utilitaire que vous recherchez est
diff
. Jetez un œil au manuel pour plus de détails.la source
Étant donné deux fichiers contenant des listes d'utilisateurs non triés, par exemple
et
puis pour obtenir une liste simple des utilisateurs dans
file1
mais pas dansfile2
, vous pouvez faireet de même pour obtenir les utilisateurs
file2
mais pasfile1
Si les fichiers de liste sont déjà triés, ceux-ci peuvent être simplifiés respectivement
comm -23 file1 file2
etcomm -13 file1 file2
.la source
comm
sans trier? Mon fichier texte a des valeurs comme1
,2
,01
,02
,0000
,0001
,0002
, etc. L' utilisationsort
sera de-sorte l'ordre ...La meilleure commande pour voir la différence dans le contenu des fichiers serait
la source
diff [options] from-file to-file
diff
compare le contenu des deux fichiers from-file et to-file.Vous pouvez spécifier l'-i
option qui ignore les modifications au cas où; 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.
la source
vous pouvez essayer les mêmes fenêtres que la
fc
commande sous Unix et Linux ie ladiff <file_new> <file_old>
commande.La ligne avec
+++
ou---
devant eux a changé et une avec non+'s
et-'s
n'a pas changéLes lignes avec
-
signe sont supprimées du nouveau fichier mais elles existaient dans l'ancienne versionLes lignes avec
+
signe sont ajoutées à partir du nouveau fichier mais elles n'existaient pas dans l'ancienne version du fichierNotation Linux
Linux utilise
>
et<
>
signifie la ligne de l'ancien fichier<
signifie la ligne du nouveau fichier qui est modifié dans l'ancien fichierla source
Optez pour vimdiff pour afficher les différences entre deux, trois ou quatre versions du même fichier.
la source