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

12

Предполагая файл с именем «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-го поля до конца строки.

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

00-Yalo
источник

Ответы:

16

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

$ cut -d ":" -f 5- -s file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
Флориан Диш
источник