GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo reemplazar múltiples espacios por una pestaña

Para convertir secuencias de más de un espacio a una pestaña, pero deja los espacios individuales en paz :

sed 's/ \+ /\t/g' inputfile > outputfile

Para hacer esto para varios archivos:

for inputfile in *
do
    sed 's/ \+ /\t/g' "$inputfile" > tmpfile && mv tmpfile "$inputfile"
done

o

for inputfile in *
do
    sed -i.bak 's/ \+ /\t/g' "$inputfile"
done

o

find . -type f -exec sed -i.bak 's/ \+ /\t/g' {} \;

Si tu personaje tiene varias pestañas, también puedes usar tr -s :

-s, --squeeze-repeats   replace each input sequence of a repeated character
                        that is listed in SET1 with a single occurrence

Por ejemplo:

my_file.txt | tr -s " "

Todos los espacios en blanco se convertirán en uno.


Puedes usar sed para reemplazar una cantidad de espacios con una tabulación.:

Ejemplo para reemplazar uno o más espacios con una pestaña:

cat spaced-file | sed 's/ \+/\t/g' > tabbed-file

Linux
  1. Cómo instalar múltiples distribuciones de Linux en un USB

  2. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  3. Tutorial de Unix Sed:cómo ejecutar múltiples comandos Sed

  4. ¿Cómo obtengo un equivalente de /dev/one en Linux?

  5. ¿Cómo saber desde qué carpeta se está ejecutando un proceso?

Cómo ejecutar múltiples comandos de Linux en un solo comando

Cómo combinar varios archivos PDF en un solo PDF en Linux

¿Cómo usar sed para reemplazar la variable de un archivo de configuración?

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

¿Cómo reemplazar recursivamente los caracteres con sed?

Reemplazo de SED en varias líneas