sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #24501
Re: Et problem med ' (shell-scripting)
At 17:28 30-06-00 +0200, you wrote:
Henrik Christian Grove <grove@xxxxxxx> writes:
> > sed "s/'/\\\\'/g" foo.bar
> Også for mig, at det så ikke løste mit problem er en anden sag, men jeg kom
> nærmere. Nu mangler jeg bare at forstå hvorfor der skulle 4 \'er til.
Nu har jeg jo leget meget med regulære udtryk og emacs, sa jeg har en
ide.
shellen ser: s/'/\\\\'/f
Shellen behandler så linien, blandt andet fortolker den \x-ting.
så ser sed(1): s/'/\\'/f
Hvorefter det skulle vere let at se at den opføre sig fornuftigt.
Ja, det ser jo fornuftigt ud :)
Men det virker ikke i Henriks tilfælde.
Han skriver:
>Problemet er at en del af ordene
>indeholder apostroffer ('), det giver visse problemer når man giver dem til
>grep, så jeg ville gerne sende dem igen et lille sed-script (eller
>tilsvarende) der satte en \ foran.
Det får mig til at tro:
Hvis der sker (endnu) en ekstra "\"-fortolkning, skal der vel egentlig også
*to* "\"'er foran apostroffen? Så sed ændrer "foobar's" til "foobar\\'s".
Som så bliver givet til grep, der læser det som "foobar\'s". Det bliver
vist til noget henad "sed /s/'/\\\\\\\\'/g" (8x\), eller hur? Langt ude :)
Venlig hilsen
Thomas Gulmark
Follow ups
References