1

Например:

$ cut -d ' ' -f 2- <<< "example"
example

Почему резать мне врут, говоря мне, что «пример» - это второй разделитель и так далее. Я хочу напечатать "" так как нет второго разделителя.

Обратите внимание, что это правильно:

$ cut -d ' ' -f 2- <<< "example "

1 ответ1

1

Вам нужно использовать опцию -s :

$ cut -d ' ' -sf 2- <<< "example"
$

По умолчанию, если в строке нет разделителей, команда cut распечатает всю строку. -s выключает это поведение.

Не то чтобы у вашего второго примера был разделитель:

cut -d ' ' -f 2- <<< "example "

Поскольку в строке есть разделитель, cut делает то, что вы ожидаете.

Документация

Это поведение задокументировано в man cut:

-f, --fields = LIST
выберите только эти поля; также выведите любую строку, которая не содержит символа-разделителя, если не указана опция -s

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .