Cut в Linux. Примеры использования

Категория: Bash

Утилита 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

категория: Bash