Tengo un sistema Linux integrado que usa Busybox (OpenWRT), por lo que los comandos son limitados. Tengo dos archivos que se parecen a:
primer archivo
aaaaaa
bbbbbb
cccccc
mmmmmm
nnnnnn
segundo archivo
mmmmmm
nnnnnn
yyyyyy
zzzzzz
Necesito fusionar estas 2 listas en 1 archivo y eliminar los duplicados. No tengo diff (el espacio es limitado) por lo que tenemos que utilizar el gran awk, sedy grep(u otras herramientas que podrían incluirse en un caso estándar Busybox). Ir a un archivo de fusión como:
command1 > mylist.merge
command2 mylist.merge > originallist
está totalmente bien No tiene que ser un comando de una sola línea.
Funciones definidas actualmente en la instancia de Busybox que estoy usando (OpenWRT predeterminado): [, [[, arping, ash, awk, basename, brctl, bunzip2, bzcat, cat, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, crontab, cut, date, dd, df, dirname, dmesg, du, echo, egrep, env, expr, false, fgrep, find, free, fsync, grep, gunzip, gzip, halt, head, hexdump, hostid, hwclock, id, ifconfig, init, insmod, kill, killall, klogd, less, ln, lock, logger, logread, ls, lsmod, md5sum, mkdir, mkfifo, mknod, mktemp, mount, mv, nc, netmsg, netstat, nice, nslookup, ntpd, passwd, pgrep, pidof, ping, ping6, pivot_root, pkill, poweroff, printf, ps, pwd, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, start-stop-daemon, strings, switch_root, sync, sysctl, syslogd, tail, tar, tee, telnet, telnetd, test,tiempo, superior, táctil, tr, traceroute, verdadero, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, cual, xargs, sí, zcat

-u.En un solo comando sin ninguna tubería:
buscar
-> http://www.busybox.net/downloads/BusyBox.html
fuente
sort file1 file2 file3 file4 | uniqosort -u file1 file2 file3 file4Otra solución:
fuente
Para ordenar de acuerdo con alguna columna clave, use lo siguiente:
aquí considere la primera, segunda y tercera columna como su clave principal.
fuente
Los archivos de su pregunta están ordenados.
Si los archivos de origen están ordenados, puede unificar y fusionar en un solo paso:
Para la ordenación numérica (no alfanumérica), use:
Eso no se pudo hacer en el lugar (redirigido a un archivo fuente).
Si los archivos no están ordenados, ordénelos (este orden podría hacerse en su lugar, utilizando la opción de ordenar
-o. Sin embargo, todo el archivo debe cargarse en la memoria):Eso sería más rápido que la simple "línea de comando" para ordenar todo:
Sin embargo, esta línea podría ser útil para archivos pequeños.
fuente