[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] duda de bash - subcadena



On Thu, Jul 19, 2012 at 08:13:52AM +0200, Mariano Cediel wrote:
> El día 18 de julio de 2012 23:00, Pablo Jiménez <pejimene@vtr.net> escribió:
> > sed -n '/::extNames/s/^..*::extNames\.([^ ][^ ]*) /\1/'
> >
> 
> echo "UCD-SNMP-MIB::extNames.5 = STRING: chkraid" | sed -n
> '/::extNames/s/^..*::extNames\.([^ ][^ ]*) /\1/'
>        sed: -e expresion #1, caracter 46: invalid reference \1 on `s'
> command's RHS

El flag -n lo puse demás y faltó el ``escaping'' de los paréntesis en la 
subexpresión. Por eso el error de 'invalid reference \1'. La versión 
correcta debiera ser:

sed '/::extNames/s/^..*::extNames\.\([^ ][^ ]*\) ..*$/\1/'

No ocupé el digits, dado que el formato en que se imprime la información 
es uniforme: Tras "extNames.", viene el número y luego el espacio. Basta 
entonces capturar los caracteres que no son un espacio en blanco antes 
de que ocurra " =" en la línea.

Saludos.

-- 
Pablo Jiménez


Reply to: