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

Команда Linux unexpand: объяснение для начинающих (с примерами)

Работа с командной строкой Linux требует изучения того, как быстро выполнять некоторые повторяющиеся задачи. Одна из таких задач, с которой вы рано или поздно столкнетесь, — это преобразование пробелов в табуляции или наоборот. В этом руководстве мы обсудим утилиту командной строки, названную unexpand, которая будет очень полезна в таких ситуациях.

Но прежде чем мы начнем, стоит упомянуть, что все примеры в этой статье были протестированы на машине с Ubuntu 16.04 LTS.

Команда unexpand в Linux

Команда unexpand позволяет вам преобразовывать пробелы в табуляции. Вот ее синтаксис:

unexpand [OPTION]... [FILE]...

А вот как это описано в справочной странице:

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

Ниже приведены некоторые примеры в формате вопрос-ответ, которые должны дать вам хорошее представление о том, как работает команда unexpand.

Вопрос 1. Как использовать команду unexpand?

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

Например:

unexpand file1

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

unexpand file1 > file2

Стоит упомянуть, что по умолчанию этот инструмент работает только с начальными пробелами. Вы можете использовать опцию -a, чтобы сообщить утилите, что вы хотите преобразовать все пробелы в табуляции.

Вопрос 2. Как заставить unexpand преобразовывать только начальные пробелы?

Инструмент предоставляет опцию, которая заставляет его преобразовывать только начальные пробелы (даже если опция -a присутствует). Эта опция называется –first-only.

unexpand --first-only -a file1 > file2

Вопрос 3. Что делает опция -t?

Что ж, опция -t имеет несколько ролей. Она принимает либо одно число, либо список чисел, разделенных запятыми. Когда вы передаете одно число (например, ‘n’), команда unexpand гарантирует, что она сжимает пробелы в файле в табуляции каждые ‘n’ позиций.

Например, чтобы заставить инструмент сжимать пробелы в табуляции каждые 3 позиции, используйте эту опцию следующим образом:

unexpand -t 3 file1 > file2

С другой стороны, если этой опции передан список чисел, разделенных запятыми, инструмент устанавливает табуляции на этих конкретных позициях.

unexpand -t 1,2,3 file1 > file2

Вопрос 4. Как заставить unexpand читать ввод из STDIN?

Это довольно просто — просто выполните команду без имени файла в качестве ввода (используйте ctrl+D, чтобы сообщить утилите, что вы закончили).

Вот о чем я говорю:

unexpand

Заключение

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.