[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]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [TEKNIK] sed regular expression driller mig



On 10/08/2012, at 13.44, Egon Andersen wrote:
> Jon Bendtsen wrote:
>> On 10/08/2012, at 12.46, Egon Andersen wrote:
>>> Jon Bendtsen wrote:
>>>> On 10/08/2012, at 12.21, Egon Andersen 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\)
>>>> sslug@sslug:/home/jonbendtsen# echo "foertekst \(den fejlagtige tekst\) eftertekst" foertekst \(den fejlagtige tekst\) eftertekst
>>>> sslug@sslug:/home/jonbendtsen# echo "foertekst \(den fejlagtige tekst\) eftertekst" | sed -e "s/\\\(.*\\\)//"
>>>> foertekst  eftertekst
>>> Problemet med denne løsning er at *alle tekster* der starter med \( og slutter med \) vil blive fjernet. Og desværre findes denne type tekster mange steder. Så det der skal fjernes er *een specifik tekst*. Og denne tekst består desværre af:
>>> \(den fejlagtige tekst\)
>> okay, hvor svært er det så at indsætte 	den fejlagtige tekst
>> i stedet for .* i ovenstående sed udtryk?
>> Eller også så kan du helt glemme \( og \) ved at bruge dette sed udtryk
>> 	"s/..den fejlagtige tekst..//"
> 
> Det er ikke svært, men hvis jeg gør det i sed hvor jeg anvender sed -c -i_orig <udtryk> *.txt
> så giver det blot fejl igen.
> Jeg har prøvet med cat af filen ind i det udtryk du angiver, så fungerer det i princippet, men når jeg så anvender det på mit virkelige problem, så virker det ikke. Og det viser sig, at filen er i ISO-8859-1 og systemet anvender UTF-8. så da teksten indeholder et 'å', så fucker det åbenbart op. Og da der i filen desuden er indlejret noget binær data, så dur det heller ikke at bruge iconv frem og tilbage.

du kunne vel sætte din locale til at være det som filen er i?

Du kunne måske dele filen op i mindre bider, så de binære data kommer i en fil for sig, og så behandle teksten og bagefter stykke dem sammen igen?



JonB



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2012-09-01, 02:01 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *