Mi archivo consta de lo siguiente; aproximadamente:
username:username:username:username:username
La línea anterior continúa con unos 600 caracteres.
Uso el awkcomando para usarlo como argumento en una solicitud API / HTTP enviada desde la línea de comando.
Estoy usando mi script para obtener una lista de cuentas de usuario que me 'siguen', y cada 24 horas más o menos, comparo la lista original en mi disco duro con la lista de nombre de usuario recién emitida (y repito quién ya no me sigue yo . Tendré que encapsular mi lógica en un bucle usando bash .. probando cada nombre de usuario.
Mi guión actual:
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
Mi pregunta es;
¿Cómo puedo generar la diferencia entre 2 archivos?
bash
command-line
awk
output
Ben
fuente
fuente

diff, ¿verdad?Respuestas:
La utilidad que estás buscando es
diff. Eche un vistazo al manual para más detalles.fuente
Dados dos archivos que contienen listas de usuarios sin clasificar, por ejemplo
y
luego para obtener una lista simple de los usuarios que están dentro
file1pero no dentrofile2, puedes hacery de manera similar para que los usuarios entren
file2pero no entrenfile1Si los archivos de la lista ya están ordenados, se pueden simplificar
comm -23 file1 file2ycomm -13 file1 file2respectivamente.fuente
commsin ordenar? Mi archivo de texto tiene valores como1,2,01,02,0000,0001,0002, etc. Usandosortse des-especie del orden ...El mejor comando para ver la diferencia en el contenido de los archivos sería
fuente
diff [options] from-file to-filediffcompara el contenido de los dos archivos de archivo a archivo. Puede especificar la-iopción que ignora los cambios en caso; considere letras mayúsculas y minúsculas equivalentes.Para obtener más información, puede consultar este enlace: http://www.computerhope.com/unix/udiff.htm o puede consultar la página del manual.
fuente
puede probar las mismas ventanas como
fccomando en Unix y Linux, es decir,diff <file_new> <file_old>comando.La línea con
+++o---en frente de ellos ha cambiado y una con no+'sy-'sno ha cambiadoLas líneas con
-signo se eliminan del nuevo archivo, sin embargo, existían en la versión anteriorLas líneas con
+signo se agregan desde el archivo nuevo, sin embargo, no existían en la versión anterior del archivoNotación Linux
Linux utiliza
>y<>significa la línea del archivo antiguo<significa la línea del archivo nuevo que se cambia en el archivo antiguofuente
Vaya a vimdiff para Mostrar diferencias entre dos, tres o cuatro versiones del mismo archivo.
fuente