← Back to team overview

sslug-teknik team mailing list archive

Re: 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\)
>>>> root@dkvideobackup:/home/jonbendtsen# echo "foertekst \(den fejlagtige tekst\) eftertekst" foertekst \(den fejlagtige tekst\) eftertekst
>>>> root@dkvideobackup:/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



Follow ups

References