Традиции всех мертвых поколений тяготеют, как кошмар, над умами живых (К. Маркс).

Преобразование вкладок в пробелы в командной строке Linux

3 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
12 февраля 2019
Эта статья научит вас преобразовывать вкладки в пробелы в командной строке Linux с точки зрения программирования.

Дискуссия по поводу использования вкладок и пробелов в программировании никогда не заканчивается.

Хотя вы можете предпочитать использовать вкладки все время, есть вероятность, что в вашем руководстве по кодированию рекомендуется использовать пробелы.

Но если вы уже использовали вкладки повсюду в своей программе и вам нужно преобразовать эти вкладки в пробелы, чтобы рецензент разрешил ваш код, вы находитесь в нужном месте.

В этой статье мы покажем вам, как преобразовать вкладки в пробелы в текстовом файле в командной строке Linux.

 

Преобразование вкладок в пробелы в командной строке Linux

Мы используем этот образец текстового файла, который является простой программой C ++ для проверки нечетного и четного числа. Это содержимое файла:

 

Проверьте, есть ли в вашем текстовом файле вкладки

Есть несколько способов сделать это. Самый простой способ, который мы находим, это использование команды cat.

Вы можете использовать команду cat с опцией -T и отобразить все вкладки как ^ I на экране (стандартный вывод).

cat -T tab_file

 

Вы можете увидеть расположение вкладок в файле.

#include
using namespace std;
int main()
{
^I
int n;
^Icout << “Enter a number:^I“;
^Icin >> n;
^I
^Iif (n%2 == 0) {
^I^Icout<<n<< “is an even Number”;
^I}
^Ielse
^I^Icout<<n<< “is an odd Number”;
^Ireturn 0;
}

Файл с вкладками

Преобразуйте вкладки в пробелы с помощью команды expand

Если вы используете команду расширения для файла, он преобразует все вкладки в блок из 8 пробелов и отобразит вывод на экране.

expand tab_file

 

Но это не очень удобно, не так ли? Вы вряд ли увидите изменения здесь. Лучшей идеей было бы сохранить вывод в другой файл.

expand tab_file > space_file

 

Теперь, если вы видите файл с помощью команды cat, вы больше не найдете вкладок.

Все вкладки преобразованы в 8 пробелов (по умолчанию)

Уменьшить количество пробелов

Как мы уже упоминали в предыдущем разделе, по умолчанию вкладка равна 8 пробелам. Это выглядело бы очень странно, если бы ваш код имел такие большие отступы.

Хорошо, что вы можете изменить размер пространства по умолчанию с помощью опции -t.

expand -t N tab_file

 

Например, если вам нужно изменить каждую вкладку на 2 пробела, вы можете использовать команду expand следующим образом:

expand -t2 tab_file > space_file
Все вкладки преобразованы в 2 пробела

 

Конвертировать только ведущие вкладки в пробелы

Часто в программах вам нужно преобразовать только начальные вкладки, то есть вкладки в начале строки. Вы не хотите касаться вкладок между строками, которые на самом деле являются частью кода.

Expand также предоставляет эту опцию. Если вы хотите преобразовать только ведущие вкладки в пробелы, используйте вариант -i.

Если мы продолжим предыдущий пример, вот как будет выглядеть команда:

expand -t2 -i tab_file > space_file

Только ведущие вкладки конвертируются в пробелы

 

Конвертировать вкладки в пробелы и сохранить их в исходный файл

Во всех приведенных выше примерах вы сохранили преобразованный файл в новый файл. Но если ваша цель состоит в том, чтобы очистить ваш код путем преобразования вкладок в пробелы существующих программных файлов, вы бы хотели, чтобы вывод был сохранен в самом оригинальном файле.

Для этого вы можете использовать команду sponge. sponge «впитывает» весь стандартный ввод, прежде чем записать его на вывод. Это очень полезно, когда вы пытаетесь изменить и сохранить тот же файл.

Теперь команда sponge может быть недоступна в вашей системе. Вам придется установить пакет moreutils.

В дистрибутивах на основе Ubuntu/Debian вы можете использовать эту команду для установки moreutils:

sudo apt install moreutils

 

После установки вы можете использовать его в следующей функции:

expand -t2 -i tab_file | sponge tab_file

 

Преобразование вкладок в пробелы во всех соответствующих файлах в каталоге

До сих пор все, что вы узнали, было применимо к одному файлу. Но если у вас есть проект, в котором есть несколько программных файлов, и вы хотите преобразовать вкладки в пробелы во всех из них, вам нужно быть здесь немного умнее.

То, что мы узнали до сих пор, может быть объединено с великолепными командами find и exec.

find . -name '*.cpp' -type f -exec bash -c 'expand -t 4 "$0" | sponge "$0"' {} \;

 

Приведенная выше команда находит все файлы, заканчивающиеся расширением cpp, передает эти файлы в команду expand, а команда expand записывает вывод в исходные файлы с помощью команды sponge.

Вы можете подумать, что с помощью команды sed на этом этапе было бы проще, но это полностью ваш выбор.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 21

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close