Cortar mentiras se o delimitador não existir

1

Por exemplo:

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

Por que cortar mentira para mim me dizendo que "exemplo" é o segundo delimitador e ligado. Quero que ele imprima "" , já que não há um segundo delimitador.

Observe que isso faz a coisa certa:

$ cut -d ' ' -f 2- <<< "example "
    
por nullUser 01.04.2015 / 20:24

1 resposta

1

Você precisa usar a opção -s :

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

Por padrão, se uma linha não tiver delimitadores, cut imprimirá a linha inteira. -s desativa esse comportamento.

Não que seu segundo exemplo tenha um delimitador:

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

Como a linha tem um delimitador, cut faz o que você espera.

Documentação

Esse comportamento está documentado em man cut :

-f, --fields=LIST
select only these fields; also print any line that contains no delimiter character, unless the -s option is specified

    
por 01.04.2015 / 20:31