Разрежь ложь, если делимера нет

Например:

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

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

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

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

1 ответ

Решение

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам