← Back to team overview

sslug-teknik team mailing list archive

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