Tengo un código antiguo de 2003 que usa la -topción de uniqcomando. Lanza un error ya que esa opción probablemente ya no sea compatible.
Aquí está la pieza que usa el comando:
egrep -n "{ IA32_OP" ia32-decode.c | \
awk '{ print $1 $3 $4 }' | \
sort -t '(' +1 | \
uniq -t ':' -f 1 | \
sed 's/\(.*\)\:IA32_OP(\(.*\)),/#define IA32_OP_\2 \1/g' >> ia32_opcodes.h
¿Qué hizo esa opción en ese entonces? ¿Con qué puedo sustituir ese comando?

man uniq,-f 1evita comparar el primer campo. Supongo-t ':'que-tse supone que eso cambiará el separador de campo de espacios en blanco a:.-tfue una opción específica de Debian que luego se eliminó?uniqno tenía lo mismo-ty-kcomo sort o por qué sort no tenía todas las características deuniqincorporado (ya que ahora tiene-u). Esos-w/-f/-sde GNU uniq no tienen sentido. ¿Por qué no podrían usar la misma sintaxis quesort.Respuestas:
La única referencia que pude encontrar
-tes en este parche en una lista de correo GNU, que contiene entre otras pistas, esto:Esto aparentemente era una extensión de GNU pero ya no estaba en uso. Parece permitir seleccionar un carácter delimitador para campos que no sean espacios o pestañas. Intenta reemplazar
con
que reemplazará
:con espacios que uniq reconoce el separador de campo.fuente
gdesed, ya que solo se omite el primer campo. Se necesita al menos un colon para que funcione la última línea (con suerte no la primera). Sin embargo, todavía no hay garantía de que funcione (cualquiera de los primeros campos puede contener espacios en blanco)Dada la
manentrada para la-fopción:Creo que es bastante seguro suponer que
-tespecifica el separador de campo (este también es el casosorten la línea anterior). La combinación de las dos opcionesuniqsolo haría funcionar la parte de la línea que sigue al primer colon.fuente