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

323
Views
Bash regexp: ¿Cómo reemplazar todos los caracteres que no son espacios en blanco con una letra?

Tengo un archivo de texto que contiene muchos espacios en blanco y algunos otros caracteres ASCII. Me gustaría usar Bash (preferiblemente a través de sed ) para reemplazar cualquier carácter que no sea un espacio en blanco en el archivo con la letra M . ¿Cómo haría para hacer esto?

Gracias por ayudar.

editar: para los votantes negativos, intenté ejecutar esto:

 sed -i 's/[^\s]/M/g' file

y esto:

 sed -i 's/[^\s]/M/' file

pero ninguno de los dos funcionó demasiado bien. No estoy familiarizado con las expresiones regulares, así que me disculpo si estoy haciendo algo obviamente mal.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Podrías usar clases de caracteres POSIX:

 sed -i 's/[^[:space:]]/M/g' file

Por ejemplo:

 $ echo 'abc' | od -a 0000000 a sp b sp ht c nl 0000007 $ echo 'abc' | sed 's/[^[:space:]]/M/g' | od -a 0000000 M sp M sp ht M nl 0000007

Nota:

  • La bandera g para el comando s , ya que desea reemplazar todas las coincidencias en una línea
over 4 years ago · Santiago Trujillo Report

0

Usar tr

 tr -c '[:space:]' M < file
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!