`cut -d: -f5-` печатает строки, даже если они не имеют двоеточия

Предполагая файл с именем "file", содержащий строки:

foo:bar:baz:qux:quux
one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog

Если мы используем команду cut с этими параметрами, мы получим:

$ cut -d ":" -f 5- file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog

В последней строке символ двоеточия не был найден, поэтому обычно он не должен занимать эту строку, потому что мы начинаем с 5-го поля до конца строки.

Почему это так?

1 ответ

Решение

По умолчанию cut с -f опция печатает любую строку, которая не содержит символ разделителя. использование -s если вы не хотите их:

$ cut -d ":" -f 5- -s file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
Другие вопросы по тегам