Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

212
Vistas
¿Cómo elimino líneas duplicadas usando Sed sin ordenar?

He estado tratando de descubrir cómo eliminar líneas duplicadas usando solo Sed y tengo problemas para descubrir cómo hacerlo.

Hasta ahora he probado esto y no ha funcionado.

 sed '$!N; /^\(.*\)\n\1$/!P; D'

expediente:

 APPLE ORANGES BANANA BANANA COOKIES FRUITS

Lo que obtuve:

 APPLE ORANGES BANANA BANANA COOKIES FRUITS

Lo que quiero:

 APPLE ORANGES BANANA COOKIES FRUITS

He estado tratando de averiguar cómo hacerlo para no tener que revisar manualmente cada línea en un archivo y decirle que elimine manualmente los duplicados.

Mi objetivo es que esto eventualmente elimine la segunda instancia de BANANA.

¿Alguien puede señalarme en la dirección correcta?

Gracias

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Usando sed

 $ sed -n '/^$/d;G;/^\(.*\n\).*\n\1$/d;H;P;a\ ' input_file APPLE ORANGES BANANA COOKIES FRUITS

Eliminar líneas en blanco. Agregar espacio de espera. Si la línea está duplicada, elimínela; de lo contrario, cópiela en el espacio de espera, imprima e inserte líneas en blanco.

over 4 years ago · Santiago Trujillo Denunciar

0

Esto podría funcionar para usted (GNU sed):

 sed -E '1s/^/\n/;:a;N;s/((\n\S+)(\n\S+)*)\n\2$/\1/;$!ba;s/.//' file

En la primera línea, inserte una nueva línea para fines de expresión regular.

Reúna las líneas en el espacio del patrón, eliminando los duplicados cuando se agreguen (más la línea vacía de antemano).

Al final del archivo, elimine la nueva línea introducida e imprima el resultado.

over 4 years ago · Santiago Trujillo Denunciar

0

mmm eso es extraño, eso parece funcionar para mí. ¿Es porque tiene una línea vacía entre cada línea de texto?

 ~$ cat test.txt APPLES ORANAGES BANANA BANANA COOKIES FRUITS ~$ cat test.txt | sed '$!N; /^\(.*\)\n\1$/!P; D' APPLES ORANAGES BANANA COOKIES FRUITS
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda