Cut в Linux. Примеры использования
Утилита cut используется для извлечения (вырезания) диапазонов символов, подстрок, колонок.
Сразу приведу расширенный пример в котором мы разбиваем массив на элементы и объединяем с помощью заданного разделителя. Работает только для однословных элементов массива:
arr=(hello world)
echo "${arr[@]}" | cut -d ' ' --output-delimiter=':' -f 1-
# hello:world
Опции
-c выбрать только символы в заданной позиции (позиция или срез: -3,5-7,10- )
-f вывести только перечисленные в списке колонки (номера,колонок)
-d символ разделить колонок вместо табуляции (не строка! Только в паре с -f)
-s не выводить строки, которые не содержат разделителей (Только в паре с -f)
--output-delimiter=':' строка для разделения полей при выводе (вместо разделителя как при вводе)
Примеры
Получить 2й символ:
echo "tExt" | cut -c 2 # E
# Извлечь символ из переменной:
echo ${str:1:1}
Извлечь символы с 9-го по 10-й:
echo "content IS long" | cut -c 9-10 # IS
Вырезать (извлечь) первые 4 символа из строки:
echo "SOME text" | cut -c -4 # SOME
Вырезать последние 7 символов (используется rev):
echo "cut last 7 SYMBOLS" | rev | cut -c -7 | rev # SYMBOLS
Разделить строку на колонки и выбрать 1,3 колонки:
echo 'one,2,three,4' | cut -d ',' -f 1,3- # one,three,4
#bash, #cut, #split, #join