Cómo encontrar el último campo usando 'cortar'

Resuelto noobcoder asked hace 10 años • 14 respuestas

Sin usar sedo awk, solo cut , ¿cómo obtengo el último campo cuando el número de campos se desconoce o cambia con cada línea?

noobcoder avatar Mar 29 '14 11:03 noobcoder
Aceptado

Podrías probar algo como esto:

echo 'maps.google.com' | rev | cut -d'.' -f 1 | rev

Explicación

  • revinvierte "maps.google.com" para que seamoc.elgoog.spam
  • cututiliza un punto (es decir, '.') como delimitador y elige el primer campo, que esmoc
  • Por último, lo invertimos nuevamente para obtenercom
zedfoxus avatar Mar 29 '2014 04:03 zedfoxus

Utilice una expansión de parámetros. Esto es mucho más eficiente que cualquier tipo de comando externo cut(o grep) incluido.

data=foo,bar,baz,qux
last=${data##*,}

Consulte BashFAQ #100 para obtener una introducción a la manipulación de cadenas nativas en bash.

Charles Duffy avatar Mar 29 '2014 05:03 Charles Duffy