Inicialmente estoy produciendo dos archivos que contienen listas de URL: me referiré a ellos como oldy new. Me gustaría comparar los dos archivos y si hay URL en el newarchivo que no están en el oldarchivo, me gustaría que se muestren en un extra_urlsarchivo.
Ahora, he leído algunas cosas sobre el uso del diffcomando, pero por lo que puedo decir, esto también analiza el orden de la información. No quiero que la orden tenga ningún efecto en la salida. Solo quiero que las URL adicionales se newimpriman en el extra_urlsarchivo, sin importar el orden en que se coloquen en cualquiera de los otros dos archivos.
¿Cómo puedo hacer esto?
fuente

diffhará lo mismo, ¿verdad?diffMostrará todas las diferencias.commle permite seleccionar si desea ver las líneas del archivo 1, el archivo 2 o las que tienen en común.bashse está ejecutando? Es posible que no admita la sustitución del proceso.Yo solo usaría
grep:Explicación
-f: le dicegrepque lea sus patrones de búsqueda de un archivo. En este casoold,.-v: le dice a grep que invierta la coincidencia, que solo imprima líneas no coincidentes.-F: le dice a grep que interprete sus patrones de búsqueda como cadenas, no como expresiones regulares. De esa manera, la.URL se combinará literalmente.Combinados, estos hacen
grepimprimir cualquier líneanewque no estaba enold. El orden de las URL en el archivo es irrelevante.fuente
-Fpatrones de texto sin formatoComo el orden es importante para usted, use
awkfuente
> extraa| sort > extra. o| sort -u > extrasi solo desea que aparezca una nueva url en la salida una vez, independientemente de cuántas veces esté en la entrada. El orden de entrada puede afectar el orden de salida a menos que haga un trabajo adicional en algún lugar del camino para evitarlo.commes la mejor respuesta para esta pregunta, aunque tambiéngrep -Fvfes buenaTengo una aplicación llamada meld. Permite ver los dos (o tres) archivos, uno al lado del otro, muestra las diferencias y permite la copia selectiva de uno a otro o la eliminación de caracteres.
Meld se puede instalar desde un terminal con
fuente