^H uit input file weghalen

Pagina: 1
Acties:

  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
ik heb een probleempje met een input file.
De file is de output file van een virusscanner, als ik de file bekijk met cat krijg ik dit te zien:
code:
1
2
3
/tmp/testvir infected: EICAR-Test-File
Disinfection of /tmp/testvir infected by virus EICAR-Test-File is impossible.
/tmp/testvir disinfection failed: EICAR-Test-File


Dit is goed, dit is ook wat ik wil zien. maar als ik de file met vi bekijk zie ik een heleboel keer ^H (wat als ik mij niet vergis staat voor een backspace)

weet iemand mischien hoe dit er uit te halen is?

ik hb al geprobeerd om sed s/^H//g te doen en sed s/.^H//g, ook heb ik het met awk geprobeerd, maar dit hielp niet.
als ik het bestand open met vi en zoek naar ^H vind deze niets.

ik heb (uiteraard :) )al gezocht, bij google kwam ik dit tegen:
http://groups.google.com/....pmel.noaa.gov%26rnum%3D1
maar de oplossingen die daar genoemd worden willen voor mij niet werken (het gaat daar overgens over een perl script)

/edit: nog ff wat extra info:

/edit2: hmm... ik poste hier net de input file zoals die er in vi uit ziet, maar GoT vind de backspace karakters ook niet leuk (de layout ging een beetje verkeerd en er miste wat regels)

[ Voor 93% gewijzigd door AtlonXP1800 op 08-05-2003 12:12 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 21:59
Dat met sed zoeken op ^H niet werkt, komt omdat het een control-character is (inderdaad backspace).

Hoe je die weg krijgt dat weet ik ook niet 1-2-3. Maar waarom boeit dat sowieso, en hoe komt het dat die backspaces in de eerste plaats in die file terechtkomen :? Misschien kun je dat uitvinden en dan bij de bron zorgen dat het niet meer gebeurt....maar als dat binnen de virusscanner is, zal dat wel niet gaan denk ik ....

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 04-05 14:00

imdos

I use FreeNAS and Ubuntu

Escapen van characters kan met deze "\" of door het tussen quotejes te zetten.

Maar is het niet de bedoeling dat die dingen daar staan :?

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
het bij de bron aanpakken is helaas niet mogelijk. Omdat de logging van de scanner niet goed werk (known bug in kaspersky for linux) moet ik op een andere manier loggen.
Dat gebeurd dus door de output van de virusscanner + grep infect weg te schrijven naar de file waar het hier over gaat.
De backspacer komen er waarschijnlijk in doordat je tijdens het scannen allemaal files over je scherm ziet vliegen (op een regel)

  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
escapen (sed 's/\^H//g') en quoten (sed 's/"^H"//g') wil niet helpen...

  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Wilke schreef op 08 May 2003 @ 12:09:
Dat met sed zoeken op ^H niet werkt, komt omdat het een control-character is (inderdaad backspace).
Als het goed is werkt dat wel. Er is alleen wel een complicatie. Je kan ^H niet intikken door [shift]-6 en dan een H in te tikken. De ^ is in een regexp namelijk het begin van de regel. sed zal dan dus zoeken naar regels die beginnen met een H. Als je in bash oid een control-character als Ctrl-H wil ingeven dan moet je eerst Ctrl-V tikken en dan Ctrl-H. Dan staat de 'echte' control-H op je command line.

In vi werkt dat trouwens hetzelfde. Daar moet je ook eerst Ctrl-V doen om aan te geven dat het volgende teken een control-char is die niet geintepreteerd moet worden.

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 10-04 09:49
Kijk met een hexeditor even wat de hexcode van het ^H character is.

Dit vervangt bijvoorbeeld alle spaties door "spatie". (een spatie heeft 20 als hexcode)
code:
1
sed jouwfile -e "s/\x20/spatie/"


^H is \x08 trouwens.

edit:
0 teveel

[ Voor 17% gewijzigd door Freak_NL op 08-05-2003 12:22 ]


  • AtlonXP1800
  • Registratie: Augustus 2001
  • Laatst online: 29-01-2025
de oplossing van jeroene hielp! bedankt voor de tip!
ik hou alleen nog wat troep over, mar dat is waarschijnlijk wel op te lossen met en grep -v

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 06-05 23:54

leuk_he

1. Controleer de kabel!

In vi kun je die vervangen door

:1,$ s/<control-V><backspace>//g

Waarbij <control-V> de control en de v toets tegelijk zijn.

Als je weet dat je in vi control-v kunt gebruikten kun je het zelf waarschijnlijk ook wel verder uitvinden.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Verwijderd

'man col' daar kun je o.a. ook ^M tekens mee weghalen :)
Pagina: 1