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

204
Views
Sed: ¿Por qué [^\]] parece no funcionar?

Estaba tratando de hacer coincidir / generar todo el texto antes de que apareciera el primer ] :

 sed -i -r 's/^([^\]]*).*/\1/' "$FILE.tmp"

Que sorprendentemente no funciona.

Sin embargo, buscar el otro paréntesis funciona:

 sed -i -r 's/^([^\[]*).*/\1/' "$FILE.tmp"

¿Es esto un error de sed o lo estoy haciendo mal?

Sé que puedo solucionar esto usando .*? lo cual es lo suficientemente bueno, pero este problema me tuvo perplejo durante tanto tiempo que me gustaría saber si hay algo que me perdí.

(Según --version, estoy usando GNU sed 4.2.2.)

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

No necesita citar el paréntesis de cierre ] . De hecho, su expresión regular se analiza como [^\] seguido de un error ] .

Desea utilizar la siguiente expresión regular (tenga en cuenta la falta de comillas con \ ):

 sed -i -r 's/^([^]].*).*/\1/' "$FILE.tmp"

La segunda expresión regular funciona por casualidad porque [ no tiene un significado especial en una expresión [] pero encontrará que también coincide con líneas que comienzan con \ .

De hecho, cuando se usa ] en un grupo [] , debe ser el primer carácter, o el segundo si el primero es un ^ .

over 4 years ago · Santiago Trujillo Report

0

Debería ser:

 sed -r 's/^([^]]+).*/\1/'

Tenga en cuenta que no necesita citar el ] si aparece en un grupo de caracteres.

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!