команда cut в linux

Команда Cut в Linux с примерами

Linux Cut Command with Examples

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

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

Как использовать cut команду

Синтаксис cut команды следующий:

Вы можете использовать один и только один из вариантов, перечисленных выше.

Как вырезать по полю

В приведенных ниже примерах мы будем использовать следующий файл. Поля разделены вкладками.

Например, для отображения 1-го и 3-го полей вы должны использовать:

Или, если вы хотите отобразить с 1-го по 4-е поле:

Как резать на основе разделителя

Например, чтобы отобразить 1-е и 3-е поля, используя «:» в качестве разделителя, введите:

Вы можете использовать любой отдельный символ в качестве разделителя. В следующем примере мы используем символ пробела в качестве разделителя и печатаем 2-е поле:

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

Следующая команда напечатает все поля кроме 1-го и 3-го:

Как указать выходной разделитель

Как вырезать из байтов и символов

Прежде чем идти дальше, давайте сделаем различие между байтами и символами.

Один байт составляет 8 битов и может представлять 256 различных значений. Когда был установлен стандарт ASCII, в нем были учтены все буквы, цифры и символы, необходимые для работы с английским языком. Таблица символов ASCII имеет 128 символов, и каждый символ представлен одним байтом. Когда компьютеры стали доступны во всем мире, технологические компании начали вводить новые кодировки символов для разных языков. Для языков, содержащих более 256 символов, простое сопоставление 1 к 1 было невозможно. Это приводит к различным проблемам, таким как совместное использование документов или просмотр веб-сайтов, и был необходим новый стандарт Unicode, который может работать с большинством мировых систем письма. UTF-8 был создан для решения этих проблем. В UTF-8 не все символы представлены 1 байтом. Символы могут быть представлены от 1 байта до 4 байтов.

В следующих примерах мы используем ü символ, который занимает 2 байта.

Выберите 5-й, 9-й и 13-й байты:

Выберите диапазон от 1-го до 5-го байта:

Примеры

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

Получить список всех пользователей

Посмотреть 10 наиболее часто используемых команд

В следующем примере cut используется для удаления первых 8 байтов из каждой строки history вывода команды.

Вывод

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

Хотя это очень полезно, cut имеет некоторые ограничения. Он не поддерживает указание более одного символа в качестве разделителя и не поддерживает несколько разделителей.

Источник

Команда cut Linux

Команда cut используется, если нужно вырезать часть текста — при этом он может находиться в файле либо быть напечатанным через стандартный ввод. В Unix-системах эта команда удаляет секции текста, которые были обозначены при помощи байтов, символов или полей, разделенных знаками «-« и «:». Работу cut обеспечивает одноименная утилита. Она входит в состав GNU Coreutils, так что по умолчанию доступна во всех дистрибутивах Linux. Также ею можно воспользоваться на машинах с операционной системой BSD.

Мы постараемся подробно рассказать о том, как работать с командой cut, задействовав и стандартный ввод, и текстовые файлы. Ну и, как всегда, дадим примеры использования, чтобы тем, кто впервые сталкивается с выполнением этой команды, было на что ориентироваться.

Синтаксис команды cut

Написание команды cut выглядит следующим образом:

$ cut опции путь_к_файлу

Использовать файл не обязательно. Если на месте его названия поставить прочерк либо не указать ничего, команда возьмет текст из стандартного ввода. При необходимости можно указывать больше файлов, чем один.

Параметры cut

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

Это основные параметры команды cut, которые нам понадобятся при работе с утилитой.

Примеры использования cut в Linux

Прежде всего создадим файл cut_command_example.txt и поместим его в домашнюю директорию. В теле документа пропишем текст:

Winter: white: snow: frost
Spring: green: grass: warm
Summer: colorful: blossom: hot
Autumn: yellow: leaves: cool

1. Работа с байтами

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

Читайте также:  как узнать свой ip в командной строке виндовс 10

Чтобы вырезать из текста, напечатанного через стандартный ввод, первый символ, команда cut должна иметь вид:

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

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

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

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

Как вы можете помнить, в созданном ранее документе было четыре строки. Команда в каждой из них вырезала символы, соответствующие указанным номерам байтов, и вывела их также построчно.

Команду cut можно использовать саму по себе, но не возбраняется сочетать с другими командами. Чаще всего используется sort. Попробуем вырезать первые 4 символа и расположить строки в алфавитном порядке:

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

А чтобы были вырезаны все символы, начиная с первого байта и заканчивая шестнадцатым, дефис должен находиться справа от числа:

Точно так же дефис используется, если текст задан не из файла, а через стандартный ввод:

2. Работа с символами

Тем, кто обрабатывает огромные массивы текстовых данных, часто приходится использовать команду cut, задавая необходимые параметры с помощью символов. Если текст напечатан через стандартный ввод, вырезать первый символ можно так:

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

При работе с символами можно использовать диапазоны значений, точно так же, как и при работе с байтами.

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

Как видно на скриншоте, были вырезаны восемнадцатый и двадцать пятый символы в каждой из строк.

Если же вырезать только первый символ в каждой строке при помощи команды

результат будет таким же, как и у команды

Чтобы вырезать из текстового файла диапазон символов, нужно напечатать в терминале следующую команду:

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

Уже известный нам трюк с дефисом возле числа можно повторить и в данном случае:

Будет вырезана последовательность символов, начиная с двенадцатого и заканчивая последним в строке.

А чтобы вырезать символы, начиная с первого и заканчивая двенадцатым, дефис следует переместить влево:

С текстом, содержащимся в файле, поступают аналогично:

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

3. Работа со столбцами

Создавая файл cut_command_example.txt, мы отделяли слова друг от друга не только пробелами, но и двоеточиями. Наконец пришло время использовать эти знаки на практике. А нужны они для того, чтобы вырезать фрагменты текста из столбцов и называются разделителями. Кроме двоеточий и пробелов в качестве разделителей можно использовать дефисы.

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

В случае с текстовым файлом результат такой же — первое слово каждого столбца напечатано в терминале:

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

В данном примере ее результатом должны быть первые три слова — He was extraordinarily.

При использовании текстового файла аналогичная команда выглядит так:

Из файла были вырезаны три первые столбца, а их содержимое выведено в терминал.

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

Как и ожидалось, были вырезаны столбцы (слова) с первого по пятый. Обратите внимание на два апострофа, которые из раза в раз появляются в записи команды при работе с текстом из стандартного ввода. Эти знаки необходимы, если разделителем является символ пробела. Теперь вырежем диапазон полей из файла:

Точно так же, как раньше сортировали вырезанные символы, мы можем поступить и сейчас — расставить названия сезонов из файла в алфавитном порядке:

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

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

Читайте также:  как узнать характеристики кулера на процессоре

Работа этой команды с текстовыми файлами не имеет принципиальных отличий:

Команда cut также пригодится при работе с массивными CSV-документами. Ее синтаксис и опции в этом случае остаются неизменными. Например, при таком написании будут вырезаны первые два столбца файла с названием file_example.csv:

Выводы

Команда cut linux — это инструмент, который пригодится всем пользователям Linux, которые работают с большими текстовыми документами. Ее возможности поистине фантастические и она имеет немало преимуществ перед другими схожими утилитами.

Как всегда, не стесняйтесь задавать вопросы в комментариях, если какие-то аспекты работы этой команды остались непонятными для вас.

Нет похожих записей

Оцените статью:

Об авторе

Автор: Rubaiat Hossain

Больше восьми лет назад мною было принято решение объявить бойкот оконной монополии и установить на свой компьютер Ubuntu. С тех пор это моя основная ОС. Иногда в порядке эксперимента «подселяю» к ней собратьев из семьи Linux. Увлекаюсь фотографией и горным туризмом. В свободное от работы время пишу статьи для losst.ru.

6 комментариев

Когда в ГУЕ прог тьма, то она на фиг не нужна, но знать её надо.?

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

Это надо для написания скриптов в основном

Источник

linux-notes.org

Cut — это команда в UNIX или Linux, используется для вырезания текста в строках файла. Вы можете использовать команду «cut», чтобы выбрать поля или столбцы из строки, указав разделитель (вы можете выбрать часть текста), указав диапазон или символы. В своей статье «Утилита cut в Unix/Linux» я расскажу как можно использовать данную утилиту на готовых примерах.

Утилита cut в Unix/Linux

Теперь, создайте файл use_cut.txt для выполнения дальнейших примеров с использованием утилиты cut, для примера:

Использования команды cut в Unix / Linux, чтобы напечатать символы определенной позиции.

Команду «cut» можно использовать для вывода символов в строке, указав положение вывода. Для вывода символов в строке, используйте опцию «-c», например:

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

Эта команда выведет 3-й и 7-й символ в каждой строке.

Использования команды cut в Unix / Linux, чтобы напечатать символы в определенном диапазоне.

Вы можете напечатать диапазон символов в строке, указав начальную и конечную позицию символов:

Эта команда выведет (вырежет) символы с 3-й позиции по 8-ю в каждой строке. Чтобы напечатать первые пять символов в строке, можно опустив начальную позицию и указав только конечную позицию:

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

Использования команды cut в Unix / Linux, чтобы вывести символы разделенные определенным разделителем.

Вы можете использовать команду «cut» как аналог команды AWK для извлечения полей в файле, используя разделитель. Опция «-d» в утилите cut может быть использована как разделитель и опция «-f» используется для указания положения поля:

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

Эта команда печатает второе и третье поле в каждой строке.

Примечание: Если разделитель, указанный не существует в строке, то команда вырежет и напечатает всю строку. Для подавления этих строк использовать опцию «-s».

Использования команды cut в Unix / Linux, чтобы вывести символы определенного интервала для полей.

Вы можете напечатать диапазон полей, указав начальную и конечную позицию:

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

Чтобы показать строки начиная из 2-й строки до последнего поля, вы можете опустить последнюю позицию поля:

Использования команды cut в Unix / Linux, чтобы вывести первое поле из /etc/passwd файла.

В файле /etc/passwd поля разделены разделителем (:). С помощью команды cut можно вывести можно вывести первое поле в данном файле:

Преобразовать текст в обратном порядке (отобразить зеркально).

Для этого, используем следующую команду:

Вот и все, тема «Утилита cut в Unix/Linux» подошла к завершению.

Источник

Команда Cut с примерами в Linux

В этой статье мы покажем вам, как использовать команду Cut в Linux, на практических примерах и подробных объяснениях наиболее распространенных параметров резки.

Как использовать команду «Cut»

Синтаксис команды cut следующий:

При использовании команды Cut вы должны использовать один и только один из следующих параметров:

Как вырезать по полю

Команда Cut в основном используется для отображения выбранных полей из каждой строки файлов или стандартного ввода. Если не указан, по умолчанию используется разделитель «TAB».

Читайте также:  как убрать надпись пробная версия виндовс 10 в правом нижнем углу экрана пробная версия

В приведенных ниже примерах мы будем использовать следующий файл. Все поля разделены вкладками.

Для отображения 1-го и 4-го полей вы должны использовать:

Или, если вы хотите отобразить с 1-го по 4-е поле:

Как резать на основе разделителя

Например, чтобы отобразить 1-е и 3-е поля, используя «:» в качестве разделителя, введите:

Вы можете использовать любой отдельный символ в качестве разделителя. В следующем примере мы используем символ пробела в качестве разделителя и печатаем 2-е поле:

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

Следующая команда напечатает все поля кроме 1-го и 3-го:

Как указать выходной разделитель

Чтобы указать выходной разделитель, используйте опцию –output-delimiter. Например, чтобы установить выходной разделитель _, используйте:

Как резать по байтам и символам

Прежде чем идти дальше, давайте сделаем различие между байтами и символами.

Один байт составляет 8 битов и может представлять 256 различных значений. Когда был установлен стандарт ASCII, в нем были учтены все буквы, цифры и символы, необходимые для работы с английским языком. Таблица символов ASCII имеет 128 символов, и каждый символ представлен одним байтом. Когда компьютеры стали всемирно популярными, технологические компании начали вводить новые кодировки символов для разных языков и для языков, которые содержат более 256 символов, простое сопоставление 1 к 1 было невозможно. Это приводит к различным проблемам, таким как совместное использование документов или просмотр веб-сайтов, и был необходим новый стандарт Unicode, который может работать с большинством мировых систем письма. UTF-8 был создан для решения этих проблем. В UTF-8 не все символы представлены 1 байтом. Символы могут быть представлены от 1 байта до 4 байтов.

В следующих примерах мы используем символ ü, который занимает 2 байта.

Выберите 5-й, 9-й и 13-й байты:

Выберите диапазон от 1-го до 5-го байта:

Примеры команды Cut

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

Получить список всех пользователей

Выходные данные команды getent passwd передаются на cutпечать 1-го поля с использованием : в качестве разделителя.

Посмотреть 10 наиболее часто используемых команд

В следующем примере cut используется для удаления первых 8 байтов из каждой строки вывода команды history.

Заключение

К настоящему времени вы должны хорошо понимать, как использовать команду cut в Linux. Хотя команда cut очень полезна, она имеет некоторые ограничения. Он не поддерживает указание более одного символа в качестве разделителя и не поддерживает несколько дециметров.

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

Источник

Команда cut в Linux

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

Синтаксис

Допустим, у нас есть файл state.txt, содержащий названия 5 государств:

Если опций не указывать, то команда выдаст ошибку:

Опции и их описания с примерами

1. -b (byte, байт): используется для извлечения заданных байтов, номера которых указываются после опции через запятую. Можно указать диапазоны через дефис. Если не указать ничего, команда выдаст ошибку. Символы табуляции и пробелы рассматриваются как символы размером в один байт.

Для выбора байтов от заданной позиции до конца строки используется следующая форма:

Аналогичным образом можно указать байты от начала строки до заданной позиции:

2. -c (column, столбец): используется для вырезания по символам. Это также может быть список символов, указанных через запятую, или диапазон, заданный через дефис. Символы табуляции и пробела интерпретируются как один символ. Номера символов указывать обязательно, иначе команда выдаст ошибку.

где k – начальный символ, а n – конечный, если они разделены дефисом, либо просто позиции символов, указанные через запятую.
Следующая команда вырезает второй, пятый и седьмой символы строк:

А эта команда – выводит первые семь символов каждой строки файла:

Интервалы от заданной позиции до конца строки и от начала строки до заданной позиции задаются аналогично предыдущей опции:

Было выведено каждое слово до пробела.

6. –version: Выводит информацию о версии команды:

7. –help: Выводит справочную информацию.

Еще несколько полезных примеров

Заключение

Команда cut очень простая, но широко используется для работы с текстовыми данными, часто в сочетании с другими командами, такими как cat или sort. Мы разобрали практически все ее опции. Однако, в разных системах версии команды и ее опции могут немного отличаться, для уточнения обратитесь к соответствующим man-страницам.

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

Источник

Образовательный портал