Utilisez le programme unxpand (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'').
tr
oused
.Je pense que tu peux essayer avec awk
ou SED si vous préférez
ou même tr
ou une version simplifiée de la solution tr proposée par Sam Bisbee
la source
tr ' ' \\t < someFile > someFile
ls -l | sed "s/ \+/ /g"
awk -v OFS="\t" '$1=$1' file1
j'ai remarqué que si vous avez une ligne commençant par le numéro 0 (par exemple0 1 2
), la ligne sera supprimée du résultat.Utilisation de Perl :
la source
perl -p -i -e 's/\t/ /g' *.java
meilleure commande tr :
Cela nettoiera la sortie de disons, unzip -l , pour un traitement ultérieur avec grep, cut, etc.
par exemple,
la source
tr [:blank:] \\t
Téléchargez et exécutez le script suivant pour convertir de manière récursive les onglets logiciels en onglets fixes dans des fichiers de texte brut.
Placez et exécutez le script à partir du dossier contenant les fichiers de texte brut.
la source
Exemple de commande pour convertir chaque fichier .js sous le répertoire courant en tabulations (seuls les espaces de début sont convertis):
la source
Vous pouvez également utiliser
astyle
. Je l'ai trouvé assez utile et il a aussi plusieurs options:la source
Si vous parlez de remplacer tous les espaces consécutifs sur une ligne par une tabulation, alors
tr -s '[:blank:]' '\t'
.Si vous parlez de remplacer tous les espaces (par exemple, espace, tabulation, nouvelle ligne, etc.), alors
tr -s '[:space:]'
.Si vous parlez de réparer un fichier endommagé par des onglets, utilisez
expand
etunexpand
comme mentionné dans d'autres réponses.la source
Utilisation de sed :
ou
la source
Cela remplacera les espaces consécutifs par un espace (mais pas une tabulation).
Cela remplacera les espaces consécutifs par une tabulation.
la source
-c
il remplace les caractères consécutifs qui ne sont pas des espaces.