- Команда cut в Linux
- Синтаксис
- Опции и их описания с примерами
- Еще несколько полезных примеров
- Заключение
- Команда Cut в Linux с примерами
- Linux Cut Command with Examples
- В этом руководстве мы покажем вам, как использовать cut команду, на практических примерах и подробных объяснениях наиболее распространенных опций.
- Как использовать cut команду
- Как вырезать по полю
- Как резать на основе разделителя
- Как дополнить выбор
- Как указать выходной разделитель
- Как вырезать из байтов и символов
- Примеры
- Получить список всех пользователей
- Посмотреть 10 наиболее часто используемых команд
- Вывод
- Команда cut в Linux
- Как использовать команду cut
- Как обрезать по полю
- Как вырезать по разделителю
- Чем дополнить подборку
- Как указать разделитель вывода
- Как обрезать по байтам и символам
- Примеры вырезок
- Получите список всех пользователей
- Посмотреть 10 наиболее часто используемых команд
- Выводы
Команда cut в Linux
Команда cut вырезает участки каждой строки файла и выводит результаты в стандартный поток вывода. Она может вырезать часть строки по расположению байта, символу и полю. В сущности она разрезает строку на участки и извлекает из них текст. С этой командой обязательно нужно указывать опции, иначе она выдаст ошибку. Если указать несколько файлов, то при выводе данных имена файлов перед ними не выводятся. Команда работает как с файлами так и с выводом из другой команды.
Синтаксис
Допустим, у нас есть файл state.txt, содержащий названия 5 государств:
Если опций не указывать, то команда выдаст ошибку:
Опции и их описания с примерами
1. -b (byte, байт): используется для извлечения заданных байтов, номера которых указываются после опции через запятую. Можно указать диапазоны через дефис. Если не указать ничего, команда выдаст ошибку. Символы табуляции и пробелы рассматриваются как символы размером в один байт.
Для выбора байтов от заданной позиции до конца строки используется следующая форма:
Аналогичным образом можно указать байты от начала строки до заданной позиции:
2. -c (column, столбец): используется для вырезания по символам. Это также может быть список символов, указанных через запятую, или диапазон, заданный через дефис. Символы табуляции и пробела интерпретируются как один символ. Номера символов указывать обязательно, иначе команда выдаст ошибку.
где k – начальный символ, а n – конечный, если они разделены дефисом, либо просто позиции символов, указанные через запятую.
Следующая команда вырезает второй, пятый и седьмой символы строк:
А эта команда – выводит первые семь символов каждой строки файла:
Интервалы от заданной позиции до конца строки и от начала строки до заданной позиции задаются аналогично предыдущей опции:
3. -f (field, поле): опция -с полезна для строк фиксированной длины, однако в большинстве файлов они не встречаются. Вам потребуется вырезать данные по полям, а не по столбцам, чтобы получить нужную информацию. Для этого используется опция -f. Номера полей должны разделяться запятыми. Данная опция не позволяет указывать диапазоны. По умолчанию в качестве разделителя полей используется символ табуляции, но при помощи опции -d можно задать другой разделитель.
Важно: по умолчанию пробел не является разделителем.
В файле state.txt поля разделены пробелами, и если не использовать опцию -d, строки будут выводиться целиком:
При помощи опции -d можно задать в качестве разделителя пробел:
Было выведено каждое слово до пробела.
4. –complement: используется с другими опциями, например, -f или -c, и инвертирует опции вывода:
5. –output-delimiter: По умолчанию разделитель выводимых данных такой же, как указанный в опции -d. Чтобы его изменить, воспользуйтесь опцией –output-delimiter. Следующая команда задает в качестве разделителя вывода символ «%» и выводит 1 и 2 поля с опцией -f:
6. –version: Выводит информацию о версии команды:
7. –help: Выводит справочную информацию.
Еще несколько полезных примеров
Команда | Описание |
free | grep Mem | sed ‘s/\s\+/,/g’ | cut -d , -f2 | Показывает объем памяти текущей системы |
cat /proc/cpuinfo | grep «name» | cut -d : -f2 | uniq | Возвращает тип CPU |
wget -q -O X http://ipchicken.com/ grep ‘^ \<8\>8’ X | sed ‘s/\s\+/,/g’ | cut -d , -f2 | Возвращает мой внешний IP-адрес |
cut -d : -f 1 /etc/passwd | Извлекает список пользователей текущей системы |
Получает MAC-адрес моих сетевых интерфейсов | |
who | cut -d \s -f1 | Вывод список пользователей, авторизованных в текущей системе |
grep -w /etc/services | cut -f 1 | uniq | Показывает, какая служба использует порт . |
Заключение
Команда cut очень простая, но широко используется для работы с текстовыми данными, часто в сочетании с другими командами, такими как cat или sort. Мы разобрали практически все ее опции. Однако, в разных системах версии команды и ее опции могут немного отличаться, для уточнения обратитесь к соответствующим man-страницам.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команда Cut в Linux с примерами
Linux Cut Command with Examples
В этом руководстве мы покажем вам, как использовать cut команду, на практических примерах и подробных объяснениях наиболее распространенных опций.
В системах Linux и Unix доступно множество утилит, позволяющих обрабатывать и фильтровать текстовые файлы. cut утилита командной строки, которая позволяет вырезать части строк из указанных файлов или данных по конвейеру и выводить результат в стандартный вывод. Его можно использовать для вырезания частей строки по разделителю, позиции байта и символу.
Как использовать cut команду
Синтаксис cut команды следующий:
Параметры, указывающие cut , использовать ли разделитель, позицию байта или символ при вырезании выделенных частей, выглядят следующим образом:
- -f ( —fields=LIST ) — Выберите, указав поле, набор полей или диапазон полей. Это наиболее часто используемый вариант.
- -b ( —bytes=LIST ) — Выберите, указав байт, набор байтов или диапазон байтов.
- -c ( —characters=LIST ) — Выберите, указав символ, набор символов или диапазон символов.
Вы можете использовать один и только один из вариантов, перечисленных выше.
- -d ( —delimiter ) — Укажите разделитель, который будет использоваться вместо разделителя «TAB» по умолчанию.
- —complement — дополнить выбор. При использовании этого параметра cut отображаются все байты, символы или поля, кроме выбранного.
- -s ( —only-delimited ) — по умолчанию cut печатает строки, которые не содержат символов-разделителей. Когда эта опция используется, cut не печатать строки, не содержащие разделителей.
- —output-delimiter — По умолчанию cut используется входной разделитель в качестве выходного разделителя. Эта опция позволяет вам указать другую строку выходного разделителя.
Команда cut может принимать ноль или более входных имен FILE. Если не FILE указано, или когда FILE есть — , cut будет читать со стандартного ввода.
LIST Аргумент , переданный -f , -b и -c варианты могут быть целым числом, несколько целых чисел , разделенных запятыми, диапазон целых чисел или нескольких диапазонов целочисленных разделенных запятыми. Каждый диапазон может быть одним из следующих:
- N N-е поле, байт или символ, начиная с 1.
- N- от N-го поля, байта или символа до конца строки.
- N-M от N-го до M-го поля, байта или символа.
- -M от первого до M-го поля, байта или символа.
Как вырезать по полю
Чтобы указать поля, которые должны быть вырезаны, вызовите команду с -f опцией. Если не указан, по умолчанию используется разделитель «TAB».
В приведенных ниже примерах мы будем использовать следующий файл. Поля разделены вкладками.
Например, для отображения 1-го и 3-го полей вы должны использовать:
Или, если вы хотите отобразить с 1-го по 4-е поле:
Как резать на основе разделителя
Чтобы вырезать на основе разделителя, вызовите команду с -d параметром, а затем разделитель, который вы хотите использовать.
Например, чтобы отобразить 1-е и 3-е поля, используя «:» в качестве разделителя, введите:
Вы можете использовать любой отдельный символ в качестве разделителя. В следующем примере мы используем символ пробела в качестве разделителя и печатаем 2-е поле:
Как дополнить выбор
Для дополнения списка полей выбора используйте —complement опцию. Это напечатает только те поля, которые не выбраны с -f опцией.
Следующая команда напечатает все поля кроме 1-го и 3-го:
Как указать выходной разделитель
Чтобы указать выходной разделитель, используйте —output-delimiter опцию. Например, чтобы установить для _ вас выходной разделитель , используйте:
Как вырезать из байтов и символов
Прежде чем идти дальше, давайте сделаем различие между байтами и символами.
Один байт составляет 8 битов и может представлять 256 различных значений. Когда был установлен стандарт ASCII, в нем были учтены все буквы, цифры и символы, необходимые для работы с английским языком. Таблица символов ASCII имеет 128 символов, и каждый символ представлен одним байтом. Когда компьютеры стали доступны во всем мире, технологические компании начали вводить новые кодировки символов для разных языков. Для языков, содержащих более 256 символов, простое сопоставление 1 к 1 было невозможно. Это приводит к различным проблемам, таким как совместное использование документов или просмотр веб-сайтов, и был необходим новый стандарт Unicode, который может работать с большинством мировых систем письма. UTF-8 был создан для решения этих проблем. В UTF-8 не все символы представлены 1 байтом. Символы могут быть представлены от 1 байта до 4 байтов.
Опция -b ( —bytes ) указывает команде вырезать секции из каждой строки, заданной заданными позициями байтов.
В следующих примерах мы используем ü символ, который занимает 2 байта.
Выберите 5-й байт:
Выберите 5-й, 9-й и 13-й байты:
Выберите диапазон от 1-го до 5-го байта:
На момент написания этой статьи версия пакета cut в GNU coreutils не имела возможности обрезать по символам. При использовании -c параметра cut ведет себя так же, как при использовании -b параметра.
Примеры
Команда cut обычно используется в сочетании с другими командами через трубопровод. Вот несколько примеров:
Получить список всех пользователей
Выходные данные getent passwd команды передаются в cut , который печатает 1-е поле, используя в : качестве разделителя.
Посмотреть 10 наиболее часто используемых команд
В следующем примере cut используется для удаления первых 8 байтов из каждой строки history вывода команды.
Вывод
cut Команда используется для отображения выбранных полей из каждой строки заданных файлов или стандартного ввода.
Хотя это очень полезно, cut имеет некоторые ограничения. Он не поддерживает указание более одного символа в качестве разделителя и не поддерживает несколько разделителей.
Источник
Команда cut в Linux
В системах Linux и Unix доступно множество утилит, позволяющих обрабатывать и фильтровать текстовые файлы. cut — это утилита командной строки, которая позволяет вырезать части строк из указанных файлов или данных, передаваемых по конвейеру, и выводить результат на стандартный вывод. Его можно использовать для вырезания частей строки по разделителю, позиции байта и символу.
В этой статье мы покажем вам, как использовать команду cut на практических примерах и подробных объяснениях наиболее распространенных параметров.
Как использовать команду cut
Синтаксис команды cut следующий:
Параметры, которые указывают cut следует ли использовать разделитель, позицию байта или символ при вырезании выбранных частей строк, следующие:
- -f ( —fields=LIST ) — Выбрать, указав поле, набор полей или диапазон полей. Это наиболее часто используемый вариант.
- -b ( —bytes=LIST ) — Выбрать, указав байт, набор байтов или диапазон байтов.
- -c ( —characters=LIST ) — Выбрать, указав символ, набор символов или диапазон символов.
Вы можете использовать один и только один из перечисленных выше вариантов.
- -d ( —delimiter ) — укажите разделитель, который будет использоваться вместо разделителя по умолчанию «TAB».
- —complement — Дополнить выбор. При использовании этой опции cut отображает все байты, символы или поля, кроме выбранных.
- -s ( —only-delimited ) — по умолчанию cut печатает строки, не содержащие символа разделителя. Когда используется эта опция, cut не печатает строки, не содержащие разделителей.
- —output-delimiter — По умолчанию cut использует разделитель ввода в качестве ограничителя вывода. Этот параметр позволяет указать другую строку разделителя вывода.
Команда cut может принимать ноль или более входных имен ФАЙЛОВ. Если FILE не указан или если FILE — — , cut будет читать из стандартного ввода.
Аргумент LIST переданный параметрам -f , -b и -c , может быть целым числом, несколькими целыми числами, разделенными запятыми, диапазоном целых чисел или несколькими диапазонами целых чисел, разделенными запятыми. Каждый диапазон может быть одним из следующих:
- N -ое поле, байт или символ, начиная с 1.
- N- от N-го поля, байта или символа, до конца строки.
- NM от N-го до M-го поля, байта или символа.
- -M от первого до M-го поля, байта или символа.
Как обрезать по полю
Чтобы указать поля, которые следует вырезать, вызовите команду с параметром -f . Если не указано иное, разделителем по умолчанию является «ТАБЛИЦА».
В приведенных ниже примерах мы будем использовать следующий файл. Поля разделены табуляцией.
Например, чтобы отобразить 1-е и 3-е поля, вы должны использовать:
Или, если вы хотите отображать с 1-го по 4-е поля:
Как вырезать по разделителю
Чтобы вырезать по разделителю, вызовите команду с параметром -d , за которым следует разделитель, который вы хотите использовать.
Например, чтобы отобразить 1-е и 3-е поля с использованием «:» в качестве разделителя, вы должны ввести:
В качестве разделителя можно использовать любой одиночный символ. В следующем примере мы используем пробел в качестве разделителя и печатаем 2-е поле:
Чем дополнить подборку
Чтобы дополнить список полей выбора, используйте параметр —complement . Это напечатает только те поля, которые не выбраны с помощью опции -f .
Следующая команда распечатает все поля, кроме 1-го и 3-го:
Как указать разделитель вывода
Чтобы указать разделитель вывода, используйте параметр —output-delimiter . Например, чтобы установить разделитель вывода на _ вы должны использовать:
Как обрезать по байтам и символам
Прежде чем идти дальше, давайте проведем различие между байтами и символами.
Один байт составляет 8 бит и может представлять 256 различных значений. Когда был установлен стандарт ASCII, он учитывал все буквы, цифры и символы, необходимые для работы с английским языком. Таблица символов ASCII состоит из 128 символов, и каждый символ представлен одним байтом. Когда компьютеры стали доступны во всем мире, технологические компании начали вводить новые кодировки символов для разных языков. Для языков, содержащих более 256 символов, простое сопоставление 1 к 1 было невозможно. Это приводит к различным проблемам, таким как совместное использование документов или просмотр веб-сайтов, и требовался новый стандарт Unicode, который может обрабатывать большинство мировых систем письма. UTF-8 был создан для решения этих проблем. В UTF-8 не все символы представлены 1 байтом. Символы могут быть представлены от 1 до 4 байтов.
Параметр -b ( —bytes ) указывает команде вырезать разделы из каждой строки, указанной в заданных позициях байтов.
В следующих примерах мы используем символ ü который занимает 2 байта.
Выберите 5-й байт:
Выберите 5-й, 9-й и 13-й байты:
Выберите диапазон от 1-го до 5-го байта:
На момент написания этой статьи версия cut входящая в состав GNU coreutils, не имела возможности вырезать по символам. При использовании параметра -c команда cut ведет себя так же, как и при использовании параметра -b .
Примеры вырезок
Команда cut обычно используется в сочетании с другими командами через трубопровод. Вот несколько примеров:
Получите список всех пользователей
Вывод команды getent passwd передается в cut , который печатает первое поле с использованием : качестве разделителя.
Посмотреть 10 наиболее часто используемых команд
В следующем примере cut используется для удаления первых 8 байтов из каждой строки вывода команды history .
Выводы
Команда cut используется для отображения выбранных полей из каждой строки заданных файлов или стандартного ввода.
Хотя это очень полезно, cut имеет некоторые ограничения. Он не поддерживает указание более одного символа в качестве разделителя и не поддерживает несколько разделителей.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник