'cut -d: -f5-' imprime linhas mesmo que não possuam cólon

12

Supondo um arquivo chamado "arquivo" contendo as linhas:

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

Se usarmos o comando cut com essas opções, obteremos:

$ 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

Na última linha, o caractere de cólon não foi encontrado normalmente, não deveria ter usado essa linha porque começamos com o 5º campo até o final da linha.

Por que isso acontece?

    
por 00-Yalo 14.01.2018 / 12:18

1 resposta

16

Por padrão, cut com a opção -f imprime qualquer linha que não contenha um caractere delimitador. Use -s se você não quiser:

$ cut -d ":" -f 5- -s file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
    
por Florian Diesch 14.01.2018 / 12:25