Команды 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 может быть очень полезной. В этом руководстве мы обсудили большинство опций командной строки, которые предлагает этот инструмент. Чтобы узнать больше, перейдите на его справочную страницу.
Get new posts in your inbox
No spam. Unsubscribe anytime.