renombrar nombre muchos masivo masiva lista forma copiar como cambiar archivos archivo linux tabs whitespace

nombre - renombrar lista de archivos linux



Reemplazar espacios en blanco con pestaƱas en Linux (8)

¿Cómo reemplazo los espacios en blanco con pestañas en Linux en un archivo de texto dado?


Use el programa unexpand (1)

UNEXPAND(1) User Commands UNEXPAND(1) NAME unexpand - convert spaces to tabs SYNOPSIS unexpand [OPTION]... [FILE]... DESCRIPTION Convert blanks in each FILE to tabs, writing to standard output. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -a, --all convert all blanks, instead of just initial blanks --first-only convert only leading sequences of blanks (overrides -a) -t, --tabs=N have tabs N characters apart instead of 8 (enables -a) -t, --tabs=LIST use comma separated LIST of tab positions (enables -a) --help display this help and exit --version output version information and exit . . . STANDARDS The expand and unexpand utilities conform to IEEE Std 1003.1-2001 (``POSIX.1'''').


Creo que puedes probar con awk

awk -v OFS="/t" ''$1=$1'' file1

o SED si prefieres

sed ''s/[:blank:]+/,/g'' thefile.txt > the_modified_copy.txt

o incluso tr

tr -s ''/t'' < thefile.txt | tr ''/t'' '' '' > the_modified_copy.txt

o una versión simplificada de la solución tr sugerida por Sam Bisbee

tr '' '' //t < someFile > someFile


Descargue y ejecute la siguiente secuencia de comandos para convertir de forma recursiva pestañas suaves a pestañas duras en archivos de texto sin formato.

Coloque y ejecute la secuencia de comandos desde el interior de la carpeta que contiene los archivos de texto sin formato.

#!/bin/bash find . -type f -and -not -path ''./.git/*'' -exec grep -Iq . {} /; -and -print | while read -r file; do { echo "Converting... "$file""; data=$(unexpand --first-only -t 4 "$file"); rm "$file"; echo "$data" > "$file"; }; done;


Ejemplo de comando para convertir cada archivo .js del directorio actual en pestañas (solo se convierten los espacios iniciales):

find . -name "*.js" -exec bash -c ''unexpand -t 4 --first-only "$0" > /tmp/totabbuff && mv /tmp/totabbuff "$0"'' {} /;


Esto reemplazará espacios consecutivos con un espacio (pero no pestaña).

tr -cs ''[:space:]''


También puedes usar astyle . Lo encontré bastante útil y también tiene varias opciones:

Tab and Bracket Options: If no indentation option is set, the default option of 4 spaces will be used. Equivalent to -s4 --indent=spaces=4. If no brackets option is set, the brackets will not be changed. --indent=spaces, --indent=spaces=#, -s, -s# Indent using # spaces per indent. Between 1 to 20. Not specifying # will result in a default of 4 spaces per indent. --indent=tab, --indent=tab=#, -t, -t# Indent using tab characters, assuming that each tab is # spaces long. Between 1 and 20. Not specifying # will result in a default assumption of 4 spaces per tab.`


Usando Perl :

perl -p -i -e ''s/ //t/g'' file.txt


mejor comando tr :

tr [:blank:] //t

Esto limpiará la salida de say, unzip -l , para un procesamiento posterior con grep, cut, etc.

p.ej,

unzip -l some-jars-and-textfiles.zip | tr [:blank:] //t | cut -f 5 | grep jar