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' filey esto:
sed -i 's/[^\s]/M/' filepero ninguno de los dos funcionó demasiado bien. No estoy familiarizado con las expresiones regulares, así que me disculpo si estoy haciendo algo obviamente mal.
Podrías usar clases de caracteres POSIX:
sed -i 's/[^[:space:]]/M/g' filePor 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 0000007Nota:
g para el comando s , ya que desea reemplazar todas las coincidencias en una líneaUsar tr
tr -c '[:space:]' M < file