`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-го поля до конца строки.

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

12
задан 15 January 2018 в 04:19

1 ответ

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

$ cut -d ":" -f 5- -s file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
16
ответ дан 15 January 2018 в 04:19

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

Похожие вопросы: