В этой статье описываются, с практическими примерами, две команды Linux, а именно Expand и Unexpand. Для тех, кому это интересно, команды Expand и Unexpand используются для замены символов табуляции в файлах символами пробела и наоборот. В MS-DOS также есть команда «Expand», которая используется для распаковки сжатых файлов. Но команда Expand в Linux просто преобразует табуляцию в пробелы. Эти две команды являются частью GNU coreutils и написаны Дэвидом Маккензи.
Для демонстрации в этом руководстве я буду использовать текстовый файл с именем «ostechnix.txt». Все приведенные ниже команды протестированы в Arch Linux.
Примеры команды Expand
Как я уже упоминал, команда Expand заменяет символы табуляции в файле на символы пробела.
Теперь давайте преобразуем табуляцию в пробелы в файле ostechnix.txt и запишем результат в стандартный вывод с помощью команды:
Если вы не хотите отображать результат в стандартном выводе, просто направьте его в другой файл, как показано ниже.
Мы также можем конвертировать табуляцию в пробелы, читая из стандартного ввода. Для этого просто запустите команду «expand» без указания имени исходного файла:
Просто введите текст и нажмите клавишу ENTER, чтобы преобразовать табуляцию в пробелы. Нажмите CTRL + C, чтобы выйти из программы.
Если вы не хотите конвертировать табуляцию после непустых символов, используйте флаг -i, как показано ниже.
Мы также можем иметь табуляцию с определенным количеством символов, а не с 8 (значение по умолчанию):
Вы даже можете использовать список определённых позиций табулятора, разделённый запятыми, как показано ниже.
или
Для более подробной информации обратитесь к man-страницам.
Примеры команды Unexpand
Как вы, возможно, уже догадались, команда Unexpand делает противоположное команде Expand, т.е. она преобразует символы пробела в символы табуляции. Позвольте мне показать вам несколько примеров, чтобы узнать, как использовать команду Unexpand.
Чтобы преобразовать пробелы в файле в символы табуляции и записать вывод в stdout, выполните:
Если вы хотите записать вывод в файл, а не просто отображать его в стандартный вывод, используйте следующую команду:
Преобразование пробелов в табуляцию, чтение из стандартного ввода:
По умолчанию команда Unexpand преобразует только начальные пробелы. Если вы хотите преобразовать все пробелы, вместо начальных, используйте флаг -a:
Чтобы преобразовать только начальные последовательности пробелов (обратите внимание, что этот флаг переопределяет -a):
Табуляция может содержать определенное количество символов, а не 8:
Точно так же мы можем указать несколько позиций табуляции с разделением запятой, как показано ниже.
или
Для более подробной информации обратитесь к man-страницам.
Комментариев нет:
Отправить комментарий