[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
On Fri, 10 Aug 2012 12:21:12 +0200 Egon Andersen <sslug@sslug> wrote: > Hej SSLUG'er > > Jeg har en stak filer, hvor der har indsneget sig en fejl. > Fejlen er simpelthen at der er kommet en tekst med der skulle > være blanktegn. Det der driller mig er blot, at teksten starter > med: \( > og slutter med > \) > > Altså en tekst som ligner følgende: \(den fejlagtige tekst\) > > Jeg har forsøgt noget i stil med: > > sed -c -i_orig {s/\(den fejlagtige tekst\)/ /} > *.txt > > Jeg får fejlmeddelelsen: > sed: -e udtryk nr. 1, tegn 7: unterminated `s' command > > Jeg har også forsøgt at escape både ' '(mellemrum), \ og (, men > jeg vedbliver at få en fejl enten i stil med ovenstående eller > syntax error. > > Jeg er overbevist om at det er et eller andet simpelt jeg bare > lige har misset. > > Håber der er en der kan hjælpe. --- --- --- Unterminated: er vel fordi der er huller (spaces) i commandstring og den afleveres af kommandolinien som brudstykker til sed. Kommandolinien "kan ikke lide" texter med mellemrum; selv om det ikke er nødvendigt er det en meget god konvention at omklamre text-strings med enten single-quotes eller double-quotes. Det er fordi kommando-linie-parseren (shell'en) afleverer text-strenge én ad gangen til applikationen. Man kunne godt lave noget program, som selv fandt ud af at "brugeren nok mener at de her hører sammen", men det ville sikkert skabe andre problemer. Eskild Nielsen har svaret på problemet: --- --- --- Hvorfor bruger du (og svarene) ikke single quotes omkring sed-expressions? Alt andet er i mine øjne selvmord eller i det mindste plagsomt :) Min sed har ikke -c option. sed -i_orig '{s/\(den fejlagtige tekst\)/ /}' Man må gerne bruge andet end forward-slash som meta-tegn i substutions-kommandoer, næsten alt andet er bedre, ex.: sed -i_orig '{s#\(den fejlagtige tekst\)# #}' ufn I mine øyne lettere at læse :) Jeg har lige testet det med et enkelt exempel og det ser OK ud. -- Donald Axel <sslug@sslug>
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |