Обзор
Когда в среде Linux необходимо быстро извлечь только нужные столбцы из больших файлов логов или данных CSV, команда cut является самым легковесным и мощным инструментом. В этой статье мы рассмотрим ключевые практические методы: от разделения полей по разделителю до среза по байтам и символам фиксированной ширины.
Извлечение данных CSV и системных учетных записей с помощью разделителя (-d) и полей (-f)
Выполните команду mkdir -p ~/cut_demo && cd ~/cut_demo, чтобы создать специальный каталог для практики работы с командой cut и перейти в него.

Создайте тестовый файл с данными пользователей, разделенными запятыми (,), записав файл users.csv с помощью команды echo.

Команда cut — это утилита для извлечения определенных столбцов (полей), байтов или символьных диапазонов из текстовых файлов или потоков вывода на основе заданного разделителя.
Укажите запятую (,) в качестве разделителя с помощью опции -d и выберите второе и четвертое поля с помощью опции -f, чтобы аккуратно вывести только имя и отдел из файла users.csv.
⚙️ [Основные опции]
-d : явно задает разделитель, используемый для разбиения полей (по умолчанию — символ табуляции).-f : указывает номера или диапазоны извлекаемых полей (столбцов).-c : вырезает данные по позициям символов вместо байтов.-b : вырезает данные по позициям байтов.--complement : инвертирует выборку, выводя все оставшиеся части, кроме указанных полей или диапазонов символов.-s : исключает из вывода строки, не содержащие разделитель.--output-delimiter : изменяет разделитель полей на указанную строку при выводе результатов.

Извлеките из файла /etc/passwd, содержащего учетные записи системы Linux, только имя учетной записи (поле 1) и путь к командной оболочке по умолчанию (поле 7), используя двоеточие (:) в качестве разделителя, и просмотрите первые 5 строк с помощью команды head.
Комбинируя команду cut с конвейером (|), можно легко просматривать только ключевые столбцы данных из объемных системных конфигурационных файлов.

Работа с логами фиксированной ширины с помощью срезов по байтам (-b) и символам (-c)
Чтобы продолжить практику, выполните команду cd ~/cut_demo для перехода в ранее созданный рабочий каталог.

Для практики срезов по символам фиксированной ширины создайте тестовый файл лога service.log, где дата, время и уровень логирования записаны в единообразном формате.
![echo -e ‘2026-10-07 14:00:01 [INFO] Service started\n2026-10-07 14:00:05 [WARN] High memory usage\n2026-10-07 14:00:12 [ERROR] Connection timed out’ > service.log](/ubuntu/20261007_145511_102/captures/s02_c02_echo_-e__2026-10-07_14_00_01__INFO__Service_starte.png)
Укажите опцию -c1-10 для команды cut, чтобы вырезать символы с 1-го по 10-й в каждой строке и аккуратно извлечь только дату в формате ГГГГ-ММ-ДД.

Используйте опцию -c12-19, чтобы точно выделить и вывести метку времени чч:мм:сс, расположенную с 12-го по 19-й символ файла лога.

Если опустить конечную позицию, например -c22-, можно одним срезом получить весь оставшийся текст от 22-го символа до конца каждой строки, извлекая область сообщений.

Изменение выходного разделителя (–output-delimiter) и исключение указанных полей (–complement)
Выполните команду cd ~/cut_demo, чтобы перейти в каталог с созданными ранее практическими файлами.

С помощью опции --output-delimiter можно задать произвольную строку для разделения полей в выводе вместо исходного разделителя по умолчанию.
Извлеките поля 2 и 3 из файла users.csv, разделенного запятыми (,), и вставьте между полями пробел и символ вертикальной черты (|) для лучшей читаемости.

Опция --complement инвертирует выборку, выводя все столбцы, кроме указанных.
Используя ее вместе с опцией -f3, можно исключить 3-е поле (информацию о роли) и оставить все остальные поля без изменений.

Практический конвейер: статистический анализ IP-адресов подключений с помощью связки cut, sort и uniq
Выполните команду cd ~/cut_demo, чтобы перейти в созданный ранее рабочий каталог и продолжить практику.

Для имитации анализа клиентских запросов к веб-серверу создайте тестовый файл лога access.log, содержащий IP-адреса подключений и сведения о HTTP-запросах, разделенные пробелами.
![echo -e ‘192.168.1.10 - - [07/Oct/2026] “GET /index.html” 200\n192.168.1.15 - - [07/Oct/2026] “POST /login” 401\n192.168.1.10 - - [07/Oct/2026] “GET /dashboard” 200\n10.0.0.5 - - [07/Oct/2026] “GET /api/v1” 200\n192.168.1.10 - - [07/Oct/2026] “POST /logout” 200’ > access.log](/ubuntu/20261007_145511_102/captures/s04_c02_echo_-e__192_168_1_10_-_-__07_Oct_2026___GET__inde.png)
Выделите только первый столбец — IP-адреса клиентов, разделенные пробелом, с помощью опции -d' ' -f1 команды cut.
Затем отсортируйте их с помощью sort, подсчитайте количество повторений с помощью uniq -c и примените sort -nr, чтобы получить отсортированный по убыванию рейтинг IP-адресов с наибольшей частотой обращений.

Мы подробно рассмотрели, как с помощью команды cut аккуратно извлекать необходимые столбцы из логов и данных CSV.
Используйте возможности разделителей и опций полей, чтобы сделать повседневную обработку текста и подготовку данных еще более эффективными.