Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

215
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!