Mi archivo consta de lo siguiente; aproximadamente:
username:username:username:username:username
La línea anterior continúa con unos 600 caracteres.
Uso el awk
comando 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
file1
pero no dentrofile2
, puedes hacery de manera similar para que los usuarios entren
file2
pero no entrenfile1
Si los archivos de la lista ya están ordenados, se pueden simplificar
comm -23 file1 file2
ycomm -13 file1 file2
respectivamente.fuente
comm
sin ordenar? Mi archivo de texto tiene valores como1
,2
,01
,02
,0000
,0001
,0002
, etc. Usandosort
se 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-file
diff
compara el contenido de los dos archivos de archivo a archivo. Puede especificar la-i
opció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
fc
comando 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+'s
y-'s
no 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