Verwenden Sie das Programm nicht erweitern (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
oder herumspielen zu müssensed
.Ich denke du kannst es mit awk versuchen
oder SED, wenn Sie bevorzugen
oder sogar tr
oder eine vereinfachte Version der von Sam Bisbee vorgeschlagenen tr-Lösung
quelle
tr ' ' \\t < someFile > someFile
ls -l | sed "s/ \+/ /g"
awk -v OFS="\t" '$1=$1' file1
bemerkte ich , dass , wenn Sie eine Zeile , die mit der Nummer 0 (zB haben0 1 2
), dann wird die Zeile aus dem Ergebnis weggelassen werden.Verwenden von Perl :
quelle
perl -p -i -e 's/\t/ /g' *.java
besser tr Befehl ein :
Dadurch wird die Ausgabe von beispielsweise entpacken -l für die weitere Verarbeitung mit grep, cut usw. bereinigt .
z.B,
quelle
tr [:blank:] \\t
Laden Sie das folgende Skript herunter und führen Sie es aus, um Soft-Tabs in Nur-Text-Dateien rekursiv in Hard-Tabs zu konvertieren.
Platzieren Sie das Skript in dem Ordner, der die Nur-Text-Dateien enthält, und führen Sie es aus.
quelle
Beispielbefehl zum Konvertieren jeder .js-Datei unter dem aktuellen Verzeichnis in Tabulatoren (nur führende Leerzeichen werden konvertiert):
quelle
Sie können auch verwenden
astyle
. Ich fand es sehr nützlich und es hat auch mehrere Möglichkeiten:quelle
Wenn Sie alle aufeinander folgenden Leerzeichen in einer Zeile durch eine Registerkarte ersetzen möchten
tr -s '[:blank:]' '\t'
.Wenn Sie über das Ersetzen aller Leerzeichen (z. B. Leerzeichen, Tabulatoren, Zeilenumbrüche usw.) sprechen, dann
tr -s '[:space:]'
.Wenn Sie über das Reparieren einer durch Tabulatoren beschädigten Datei sprechen, verwenden Sie
expand
undunexpand
wie in anderen Antworten erwähnt.quelle
Mit sed :
oder
quelle
Dadurch werden aufeinanderfolgende Leerzeichen durch ein Leerzeichen (jedoch keine Registerkarte) ersetzt.
Dadurch werden aufeinanderfolgende Leerzeichen durch eine Registerkarte ersetzt.
quelle
-c
ersetzt es durch das fortlaufende Zeichen, die keine Leerzeichen sind.