npmv="3.4.5"
major=${npmv%%.*}
printf 'The major version number is %s\n' "$major"
A substituição do parâmetro ${variable%%pattern} removerá a sequência de sufixo maior correspondente a pattern do valor de $variable . O padrão é tratado como um padrão de globalização de nome de arquivo, não uma expressão regular. Esta é uma substituição de parâmetro padrão que funcionará em todos os shells do POSIX.
A mesma coisa, mas com um único % , removeria apenas o .5 final da string no exemplo (o padrão de sufixo de correspondência menor ). Para strings de prefixo, use # em vez de % .
Veja também a seção sobre expansões de parâmetros no padrão POSIX e sua manual do shell.