Используйте программу Unpand (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
илиsed
.Я думаю, ты можешь попробовать с awk
или SED, если вы предпочитаете
или даже тр
или упрощенная версия tr-решения, предложенного Сэмом Бисби
источник
tr ' ' \\t < someFile > someFile
ls -l | sed "s/ \+/ /g"
awk -v OFS="\t" '$1=$1' file1
Я заметил , что если у вас есть начало строки с номером 0 (например0 1 2
), то линия будет пропущена из результата.Используя Perl :
источник
perl -p -i -e 's/\t/ /g' *.java
s/ {4}/
преобразовывал отступы из 4 пробелов в табуляции.Лучшая команда tr :
Это очистит вывод, скажем, unzip -l для дальнейшей обработки с помощью grep, cut и т. Д.
например,
источник
tr [:blank:] \\t
Загрузите и запустите следующий скрипт для рекурсивного преобразования программных вкладок в жесткие вкладки в текстовых файлах.
Поместите и выполните сценарий из папки, содержащей простые текстовые файлы.
источник
Пример команды для преобразования каждого файла .js в текущем каталоге в табуляцию (преобразуются только ведущие пробелы):
источник
Вы также можете использовать
astyle
. Я нашел это весьма полезным, и у него тоже есть несколько вариантов:источник
Если вы говорите о замене всех подряд идущих пробелов в строке табуляцией, тогда
tr -s '[:blank:]' '\t'
.Если вы говорите о замене всего пробела (например, пробела, табуляции, новой строки и т. Д.), Тогда
tr -s '[:space:]'
.Если вы говорите об исправлении файла, поврежденного вкладкой, используйте
expand
и,unexpand
как указано в других ответах.источник
Используя sed :
или
источник
Это заменит последовательные пробелы одним пробелом (но не табуляцией).
Это заменит последовательные пробелы табуляцией.
источник
-c
он заменяет последовательные символы, не являющиеся пробелами.