Мы собираемся изучить пару полезных команд для обработки текста. Прежде чем начать, давайте создадим файл для работы. Скопируйте и вставьте следующую команду. После вставки вам нужно будет добавить литеральный символ TAB между "lazy" и "dog" (часто это можно сделать, нажав Ctrl-v, а затем TAB).
echo 'The quick brown; fox jumps over the lazy dog' > sample.txt
Первая команда, которую мы рассмотрим, это cut, которая извлекает части текста из файла.
Вырезание по символам
Вы можете извлекать содержимое на основе позиции символа, используя флаг -c.
cut -c 5 sample.txt
Эта команда выводит 5-й символ из каждой строки файла. В нашем случае вывод — "q". Обратите внимание, что пробелы также считаются символами.
Вырезание по полям с помощью cut f
Более мощной функцией является вырезание по полям. Синтаксис cut f, использующий флаг -f, позволяет извлекать текст на основе позиции поля. По умолчанию cut использует символ TAB в качестве разделителя, что означает, что все, что разделено символом TAB, считается отдельным полем.
Давайте посмотрим, как вырезать f на основе полей:
cut -f 2 sample.txt
Поскольку мы вставили TAB между "lazy" и "dog", эта команда рассматривает "dog" как второе поле. Ваш вывод должен быть "dog".
Использование пользовательских разделителей
Вы также можете объединить флаг поля с флагом разделителя (-d), чтобы указать пользовательский разделитель. Это полезно при работе с файлами, которые используют такие символы, как запятые или точки с запятой, для разделения данных.
cut -f 1 -d ";" sample.txt
Эта команда изменяет разделитель с TAB на точку с запятой (";"). Поскольку мы вырезаем первое поле (-f 1), результатом будет "The quick brown".