¿Existe una línea de comando simple para extraer la última parte de una cadena separada por guiones? Por ejemplo, quiero extraer 123
de foo-bar-123
.
10
Puede usar la expansión de parámetros de Bash :
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
Si quieres usar otro proceso, con Awk:
echo "foo-bar-123" | awk -F- '{print $NF}'
O, si prefieres Sed:
echo "foo-bar-123" | sed 's/.*-//'
Un proceso externo más ligero, como sugiere Glenn Jackman, es cut
:
cut -d- -f3 <<< "$string"
cut
:cut -d- -f3 <<< "$string"
cut
; de hecho, pero solo si se conoce el número del último campo (ya que la pregunta es un poco ambigua: ¿Hay una línea de comando simple para extraer la última parte ...? )rev <<< "$string" | cut -d- -f1 | rev
, pero luego nos estamos desviando de la simplicidad de la expansión de parámetros.fuente
fuente