Usa sed para filtrar la salida del logging de git

Hice una migration de svn a git. Ahora uso git log para encontrar la revisión svn (que se describe en el post de confirmación de git).

$ git log -1 11.10.11.0 

salida

 commit 84a1f5fb6xxx4607e6ed5623eab15ecdbacf Author: USER <USER> Date: Wed Apr 12 08:27:08 2017 +0000 git-svn-id: https://svn-repo.com/repo/proj/tags/11.10.11.0@12000 f25b8xx2b0-ax00-41x2-87xx1-abxxxxe8fa 

Ahora quiero usar sed para filtrar el número de revisión ( 12000 ) en este caso. ¿Cuál es la forma más genérica de hacer esto?

aproximación sed : Aquí sed se realizan dos acciones por sed. Una es imprimir solo la línea deseada y otra es imprimir la sección de línea deseada.

 <git-command>|sed -r '/git-svn-id/!d;s/.*@([^ ]+).*/\1/' 12000 

Si grep es un enfoque aceptable para usted:

 <git-command>|grep -oP 'git-svn-id.*?@\K[^ ]+' 12000 

Si awk es aceptable:

 <git-command>|awk '/git-svn-id/{n=split($2,a,"@");print a[n]}' 12000 

El command awk puede cumplir sus requisitos, eche un vistazo a continuación,

 git log -1 11.10.11.0 | awk -F'@' '{printf "%s",$2}' | awk '{print $1}' 12000