Команды Linux · 2 min read · Sep 15, 2025

Учебник по команде expand в Linux для начинающих (с примерами)

При работе в командной строке в Linux может возникнуть ситуация, когда необходимо заменить табуляции в файле на пробелы. Эта задача несложна, если файл небольшой, но что, если файл, с которым вы работаете, огромен, или, что еще хуже, есть сотни файлов, в которых нужно внести это изменение?

Не беспокойтесь, существует инструмент командной строки, специально созданный для этой работы. Инструмент, о котором идет речь, — это expand, и в этом учебнике мы обсудим основы expand, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит отметить, что все команды и инструкции, упомянутые здесь, были протестированы на Ubuntu 16.04LTS.

Команда expand в Linux

Команда expand, как уже упоминалось, позволяет вам преобразовывать табуляции в пробелы. Следующий синтаксис команды:

expand [OPTION]... [FILE]...

Вот как определяет этот инструмент страница man:

Преобразовать табуляции в каждом ФАЙЛЕ в пробелы, записывая в стандартный вывод. При отсутствии ФАЙЛА или когда ФАЙЛ -,
читайте стандартный ввод.

Следующие примеры в формате вопросов и ответов должны дать вам лучшее представление о том, как работает команда expand.

Вопрос 1. Как преобразовать табуляции в пробелы с помощью команды expand?

Основное использование expand очень простое: передайте имя файла (который содержит табуляции) в качестве аргумента инструменту.

Например:

expand file1

Вот и все. Инструмент выведет содержимое файла, единственное изменение — пробелы вместо табуляций. Обратите внимание, что если вы хотите внести такое изменение в несколько файлов, просто передайте все имена файлов на вход, и табуляции будут преобразованы в пробелы во всех файлах сразу.

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

expand file1>file2

Вопрос 2. Как ограничить влияние expand только на начальные табуляции?

Иногда вы можете захотеть преобразовать только табуляции, которые предшествуют строкам, и оставить без изменений те, которые появляются после непустых. Команда expand позволяет вам сделать это, просто вам нужно будет использовать командный параметр -i.

expand -i file1

Вопрос 3. Как изменить количество пробелов, на которые преобразуются табуляции?

По умолчанию expand преобразует табуляции в соответствующее количество пробелов. Однако, если вы хотите, вы можете изменить количество пробелов, используя командный параметр -t. Этот параметр требует, чтобы вы ввели новое количество пробелов.

Например, в нашем случае табуляции по умолчанию преобразуются в 4 пробела. Поэтому, чтобы уменьшить это количество пробелов до 1, мы использовали следующую команду:

expand -t1 file1

Пожалуйста, обратите внимание, что когда никакой файл не передан в качестве входных данных для этого инструмента, или вы передаете дефис ‘-‘ в качестве имени файла, входное содержимое читается из стандартного ввода (STDIN).

Заключение

Команда expand предлагает ограниченный набор функций, но учитывая, что инструмент создан для очень конкретной цели, предлагаемые им параметры более чем достаточны. Просто практикуйтесь с тем, что вы прочитали, и вы сможете использовать инструмент сразу. Заинтересованные могут получить доступ к странице man команды здесь.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.