opensuse
[Arriba] [Todas las Listas]

Re: [opensuse] Java Asistencia de guión (ligeramente OT)

To: opensuse@xxxxxxxxxxxx
Subject: Re: [opensuse] Java Asistencia de guión (ligeramente OT)
From: David Haller <dnh@xxxxxxxxxxxx>
Date: Thu, 22 Sep 2011 11:47:24 +0200
Delivered-to: opensuse@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 22 Sep 2011 05:58:52 -0400
Envelope-to: traductor@xxxxxxxxxxx
In-reply-to: <j5eo6r$c4p$1@saturn.local.net>
List-archive: <http://lists.opensuse.org/opensuse/>
List-help: <mailto:opensuse+help@opensuse.org>
List-owner: <mailto:opensuse+owner@opensuse.org>
List-post: <mailto:opensuse@opensuse.org>
List-subscribe: <mailto:opensuse+subscribe@opensuse.org>
List-unsubscribe: <mailto:opensuse+unsubscribe@opensuse.org>
Mail-followup-to: opensuse@xxxxxxxxxxxx
Mailing-list: contact opensuse+help@xxxxxxxxxxxx; run by mlmmj
Organization: What?
References: <201109182047.49943.p.nikolic1@btinternet.com> <j56tpt$p9h$1@saturn.local.net> <201109191435.18504.p.nikolic1@btinternet.com> <j57i0j$qqp$1@saturn.local.net> <20110920032119.GA23424@grusum.endjinn.de> <j59cgl$vd2$1@saturn.local.net> <20110921203605.GC16846@grusum.endjinn.de> <j5eo6r$c4p$1@saturn.local.net>
User-agent: Mutt/1.5.21 (2010-09-15)
Hola,

En *Thu, 22 *Sep 2011, Por *Jessen escribió:
>David *Haller escribió:
>> Dentro '' sólo necesitas huir ' él, el cual no trabaja, cuando \
>> tiene no especial significando cualquier interior de ''.
>> *Workaround: '*foo'"'"'Barra' o '*foo'\''barra'
>> 
>> Dentro "" tienes que *IIRC escapada !"()`` Y $ (el ! Sólo si has
>> habilitado historia *substitution (conjunto -*H).
>
>Con *sed, siempre necesito huir +() dentro de '' para conseguirles para trabajar.  Soy
>yo haciendo algo mal? 

Depende en qué significándote quiere el +() para tener. Leído 'hombre 7 *regex'.
Cuando declarado, *sed utiliza básico *regex, *i.*e. +() Tiene no significado especial
(cuándo *sed les ve, uso 'conjunto -*x' para descubrir lo que *sed de hecho consigue).
Si les quieres tener significado especial (agrupación puesto que () y una "vez
o más a menudo"), entonces necesitas huirles _para *sed_ (ve hombre 7
*regex). Te importa: aquello "huyendo para *sed" es completamente *seperated de huir
"en el pelar". *E.*g.:

    *sed *s/\\\(.\\\)/*X\\\1/*g

==  *sed "*s/\(.\)/*X\1/*g"     ### recordar lo que necesitas huir de ###
                            el pelar dentro del "" aun así!
==  *sed /\(.\)/*X\1/*g'

!=  *sed /(.)/*X\1/*g'       => ERROR:
                        "referencia nula \1 en `*s' orden *RHS"
                            (hay ninguna "agrupación" en el LHS).

Con '\+' es *analoguous (y \+ no es *portable, *IIRC, pero disponible
en *GNU *sed para al menos 10 años, pienso). Otra vez: 'hombre 7 *regex'
tendría que aclarar arriba de la mayoría de vuestros malentendidos. Pero sentir libre de pedir
más lejano *clarifications / explicaciones (*esp. Dónde pela
citar/huyendo es implicado, que puede conseguir bastante confundiendo ;)

*Ah, mientras intentando entender 'hombre 7 *regex' _HACER_ 'conjunto -*x', para ver
lo que *sed (o *grep para aquel asunto) de hecho conseguir pasado del pelar.
Si tú  no, podrías conseguir confundido por "lo que huido del pelar
y qué para *sed/*grep ...

Oh, y *BTW: dentro de un .*spec Archivo es otro nivel de la "diversión" añadida ;*P
diversión Extra, si "vives-*patch" un *Makefile de un .*spec. Aquello es todavía
otro nivel[1] :) Así que, la directriz (para utilizar un *patch) es una cosa buena!

*HTH,
-*dnh

[1] pero bastante satisfaciendo, una vez consigues" para trabajar. *BTDT.

-- 
Niño, tienes la atención *span de un *caffeinated *hummingbird.
                            -- "Martillo" para "Bromear" en Ángeles 2200
-- 
A *unsubscribe, *e-correo: *opensuse+unsubscribe@xxxxxxxxxxxx
Puesto que órdenes adicionales, *e-correo: *opensuse+help@xxxxxxxxxxxx


Hello,

On Thu, 22 Sep 2011, Per Jessen wrote:
>David Haller wrote:
>> Inside '' you only need to escape ' itself, which doesn't work, as \
>> has no special meaning either inside of ''.
>> Workaround: 'foo'"'"'bar' or 'foo'\''bar'
>> 
>> Inside "" you have to IIRC escape !"()`` and $ (the ! only if you've
>> enabled history substitution (set -H).
>
>With sed, I always need to escape +() inside '' to get them to work.  Am
>I doing something wrong? 

Depends on what meaning you want the +() to have. Read 'man 7 regex'.
As stated, sed uses basic regex, i.e. +() have no special meaning
(when sed sees them, use 'set -x' to find out what sed actually gets).
If you want to have them special meaning (grouping for () and "once
or more often"), then you need to escape them _for sed_ (see man 7
regex). Mind you: that "escaping for sed" is completely seperated from
"escaping in the shell". E.g.:

    sed s/\\\(.\\\)/X\\\1/g

==  sed "s/\(.\)/X\1/g"     ### remember what you need to escape from
                            ### the shell inside the "" though!
==  sed 's/\(.\)/X\1/g'

!=  sed 's/(.)/X\1/g'       => ERROR:
                        "invalid reference \1 on `s' command's RHS"
                            (there is no "grouping" on the LHS).

With '\+' it's analoguous (and \+ is not portable, IIRC, but available
in GNU sed for at least 10 years, I think). Again: 'man 7 regex'
should clear up most of your misunderstandings. But feel free to ask
for further clarifications / explanations (esp. where shell
quoting/escaping is involved, that can get quite confusing ;)

Ah, while trying to understand 'man 7 regex' _DO_ 'set -x', to see
what sed (or grep for that matter) actually get passed from the shell.
If you don't, you might get confused by "what's escaped from the shell
and what for sed/grep ...

Oh, and BTW: within a .spec file it's another level of "fun" added ;P
Extra fun, if you "live-patch" a Makefile from a .spec. That's yet
another level[1] :) So, the guideline (to use a patch) is a good thing!

HTH,
-dnh

[1] but quite satisfying, once you "get" to work. BTDT.

-- 
Kid, you've got the attention span of a caffeinated hummingbird.
                            -- "Hammer" to "Kid" in Angels 2200
-- 
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx


<Anterior por Tema] Tema Actual [Siguiente por Tema>