Obter a última parte da sequência após hífen


10

Existe uma linha de comando simples para extrair a última parte de uma sequência separada por hífens? Por exemplo, eu quero extrair 123de foo-bar-123.

Respostas:


23

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

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

Se você deseja usar outro processo, com o 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 sugere Glenn Jackman, é cut:

cut -d- -f3 <<< "$string"

A expansão dos parâmetros do shell é a melhor resposta. Uma ferramenta externa leve é cut:cut -d- -f3 <<< "$string"
glenn jackman 31/03

11
@glennjackman - re: cut; na verdade, mas apenas se o número do último campo é conhecido (como a questão é um pouco ambígua: ? Existe uma linha de comando simples para extrair a última parte ... )
don_crissti

2
@don_crissti, de fato. Um poderia fazer rev <<< "$string" | cut -d- -f1 | rev, mas então estamos desviar-nos a simplicidade de param.expansion.
Glenn Jackman


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.