Não, é o mesmo em todas as implementações de cut . Os números começam em um, é apenas o Solaris não reclamará se você fornecer 0 e o tratará como 1. Ambos 0 e 1 significa o primeiro caractere e 2 significa o segundo caractere:
$ echo test | cut -c 0-2
te
$ echo test | cut -c 1-2
te
busybox cut ou cut incorporado em ksh93 também não se queixam. O GNU cut apenas tenta ser útil em dizer que você provavelmente não tem a idéia correta sobre o que é o primeiro índice.
Uma diferença real é que GNU e busybox cut (pelo menos a partir de 2014-03-27), contam em bytes para -c , enquanto Solaris ou ksh cut contam em caracteres (como requer POSIX) .
$ echo 'Stéphane' | cut -c 1-4
Sté
$ echo 'Stéphane' | busybox cut -c 1-4
Sté
$ echo 'Stéphane' | ksh -c 'command /opt/ast/bin/cut -c 1-4'
Stép
(em uma localidade UTF-8, é (U + 00E9) leva 2 bytes)