Obtenha a última parte da string após o hífen

8

Existe uma linha de comando simples para extrair a última parte de uma string separada por hifens? Por exemplo, quero extrair 123 de foo-bar-123 .

    
por Steven 31.03.2015 / 00:44

3 respostas

17

Você pode usar a expansão do parâmetro do Bash:

string="foo-bar-123" && printf "%s\n" "${string##*-}"
123

Se você quiser usar outro processo, com Awk:

echo "foo-bar-123" | awk -F- '{print $NF}'

Ou, se você preferir Sed:

echo "foo-bar-123" | sed 's/.*-//'

Um processo externo mais leve, como Glenn Jackman sugere é cut :

cut -d- -f3 <<< "$string"
    
por 31.03.2015 / 00:47
3
grep -Po '(?<=\w-)\w+(?=$|[\s.,])'
    
por 31.03.2015 / 01:03
1
echo "foo-bar-123"| awk -F"-" '{print $3}' 
    
por 31.03.2015 / 02:51