Шпаргалка: извлечь поля из простого текстового формата
Работайте с пустыми полями, списками номеров и строками без разделителя в GNU cut. Определите, когда обычного разделения уже недостаточно.
Когда открыть эту шпаргалку
Формат с одним буквальным разделителем проще CSV с кавычками и вложенным содержимым. Перед извлечением полей договоритесь о значении разделителя и пустого поля. В записи elm::ready второе поле существует, но его содержимое пусто.
Выбор команды
Для иллюстраций inventory.txt содержит записи с двоеточием. Нумерация полей начинается с единицы; порядок перечисления номеров не переставляет выходные поля.
| Что выяснить | Команда или выражение | Как читать результат |
|---|---|---|
| Одно поле | cut -d : -f 2 inventory.txt | Выбрать второе поле каждой записи. |
| Несколько полей | cut -d : -f 1,3 inventory.txt | Первое и третье в порядке входной строки. |
| От заданного поля до конца | cut -d : -f 2- inventory.txt | Сохранить оставшиеся поля, включая пустые. |
| Отсеять строки без разделителя | cut -s -d : -f 2 inventory.txt | -s не проверяет количество полей или смысл значений. |
| TAB как разделитель | cut -f 1,2 inventory.tsv | Без -d используется TAB, а не любой пробел. |
Короткая последовательность
Образец создаётся в потоке и не записывает файл. Во второй выходной строке пустое среднее поле не смещает поле состояния.
printf '%s\n' 'elm:north:ready' 'reed::paused' | cut -d : -f 1,3Проверка вывода
Ожидаются elm:ready и reed:paused. Если в исходнике исчезнет разделитель, поведение зависит от -s: без него строка может пройти целиком. Именно поэтому cut нельзя считать валидатором произвольной таблицы.
Границы применения
Выбор полей не является выбором символов или байтов. CSV с разделителем внутри кавычек требует CSV-парсера. Для данных с переводом строки внутри записи сначала определите правила границ записи; простая построчная обработка меняет смысл такого формата.
Технические источники
Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.
- Руководство cut(1)
Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.
Примеры для собственной Linux-системы с Bash и указанными утилитами. Наличие пакетов и набор опций проверьте в установленной версии; браузерный терминал поддерживает только своё подмножество.
От материала к практике
Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.