/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Søger script tip
Fra : Poul Hansen


Dato : 06-09-01 16:59

Scenarie:

Modtager en fil med stor længde pr. record (alm. text), f.eks. op til 1000
char's.
Skal reformatere denne, så linierne knækker efter 200 char's.
Dvs. hvis f.eks. en linie er 867 char's, skal jeg først 'knække' de første
200, dernæst op til 400, 600, 800 og rest i sidste (nye) record bliver så
67 char's. Ialt 5 nye records.
Kan ikke rigtig finde den rigtige angrebs-vinkel ?
Ville værdsætte gode ideer ???

Poul



 
 
Knud Haugaard Sørens~ (06-09-2001)
Kommentar
Fra : Knud Haugaard Sørens~


Dato : 06-09-01 17:06

Det lyder som et job for awk eller sed

Poev at paa
man awk
og
man sed

Knud

Poul Hansen wrote:
>
> Scenarie:
>
> Modtager en fil med stor længde pr. record (alm. text), f.eks. op til 1000
> char's.
> Skal reformatere denne, så linierne knækker efter 200 char's.
> Dvs. hvis f.eks. en linie er 867 char's, skal jeg først 'knække' de første
> 200, dernæst op til 400, 600, 800 og rest i sidste (nye) record bliver så
> 67 char's. Ialt 5 nye records.
> Kan ikke rigtig finde den rigtige angrebs-vinkel ?
> Ville værdsætte gode ideer ???
>
> Poul

--
Do you have a freelance which include Web Design, Programming or Linux ?
Then send me a email!

Claus Rasmussen (06-09-2001)
Kommentar
Fra : Claus Rasmussen


Dato : 06-09-01 17:33

Poul Hansen wrote:

> Modtager en fil med stor længde pr. record (alm. text), f.eks. op til 1000
> char's.
> Skal reformatere denne, så linierne knækker efter 200 char's.

perl -pe 's/(.{200})/$1\n/g' < fil

-Claus



Peter Dalgaard BSA (06-09-2001)
Kommentar
Fra : Peter Dalgaard BSA


Dato : 06-09-01 17:47

Claus Rasmussen <clr@cc-consult.dk> writes:

> Poul Hansen wrote:
>
> > Modtager en fil med stor længde pr. record (alm. text), f.eks. op til 1000
> > char's.
> > Skal reformatere denne, så linierne knækker efter 200 char's.
>
> perl -pe 's/(.{200})/$1\n/g' < fil

Får du ikke en ekstra blank linje hvis der er en linje med præcis
k*200 tegn i?

--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907

Claus Rasmussen (07-09-2001)
Kommentar
Fra : Claus Rasmussen


Dato : 07-09-01 06:13

Peter Dalgaard BSA wrote:

> Claus Rasmussen <clr@cc-consult.dk> writes:
>
>> perl -pe 's/(.{200})/$1\n/g' < fil
>
> Får du ikke en ekstra blank linje hvis der er en linje med præcis
> k*200 tegn i?

Jo. Det har du faktisk ret i.

-Claus


Poul Hansen (06-09-2001)
Kommentar
Fra : Poul Hansen


Dato : 06-09-01 20:17

Jeg må nok erkende, at jeg er helt blank mht. Perl
Så det er lidt svært at gennemskue. Har forsøgt dette i en DOS-perl. Det ser
ikke ud til at virke ?? Hvad hvis jeg iøvrigt gerne vil have resultat i fil
og ikke stdout ??

Poul

"Claus Rasmussen" <clr@cc-consult.dk> wrote in message
news:9n88fj$f61$1@sunsite.dk...
> Poul Hansen wrote:
>
> > Modtager en fil med stor længde pr. record (alm. text), f.eks. op til
1000
> > char's.
> > Skal reformatere denne, så linierne knækker efter 200 char's.
>
> perl -pe 's/(.{200})/$1\n/g' < fil
>
> -Claus
>
>



Claus Rasmussen (07-09-2001)
Kommentar
Fra : Claus Rasmussen


Dato : 07-09-01 06:22

Poul Hansen wrote:

> Jeg må nok erkende, at jeg er helt blank mht. Perl

Det har sådan set ikke så meget med perl at gøre. Det handler mere om at
kende regulære udtryk (RE). Det er grundlaget for et væld at smarte
værktøjer og kommandoer på en linux maskine.


> Så det er lidt svært at gennemskue. Har forsøgt dette i en DOS-perl. Det
> ser ikke ud til at virke ?? Hvad hvis jeg iøvrigt gerne vil have resultat
> i fil og ikke stdout ??

Hvis du gerne vil have output i en fil, omdirrigerer du bare stdout til
filen. Nøjagtigt som input også omdirrigeres fra en fil:

perl -pe 's/(.{200})/$1\n/g' < inputfil > outputfil

Men brug hellere fold som Rasmus foreslår. Der er et problem med udtrykket
som gør, at du får to blanke linier til sidst, hvis der er et præcist 200
tegn (eller et multiplum heraf) i filen.

-Claus



Poul Hansen (07-09-2001)
Kommentar
Fra : Poul Hansen


Dato : 07-09-01 08:01

Ved ikke havad der gik galt . Har nu arbejdet lidt med dit script ! OG det
virker. Det er faktisk genialt !
Vil dog lige kigge på 'fold' - da det virker 'enklere'

Tak for hjælpen

Poul

> Det har sådan set ikke så meget med perl at gøre. Det handler mere om at
> kende regulære udtryk (RE). Det er grundlaget for et væld at smarte
> værktøjer og kommandoer på en linux maskine.
>
>
> Hvis du gerne vil have output i en fil, omdirrigerer du bare stdout til
> filen. Nøjagtigt som input også omdirrigeres fra en fil:
>
> perl -pe 's/(.{200})/$1\n/g' < inputfil > outputfil
>




Rasmus Toftdahl Oles~ (06-09-2001)
Kommentar
Fra : Rasmus Toftdahl Oles~


Dato : 06-09-01 22:17

Claus Rasmussen <clr@cc-consult.dk> writes:
> Poul Hansen wrote:
>
> > Modtager en fil med stor længde pr. record (alm. text), f.eks. op til 1000
> > char's.
> > Skal reformatere denne, så linierne knækker efter 200 char's.
>
> perl -pe 's/(.{200})/$1\n/g' < fil
>
Eller fold:
fold -w 200 <fil>

--
Best Regards / Venlig Hilsen
   Rasmus Toftdahl Olesen
    halfdan@halfdan.dyndns.org
    http://halfdan.dyndns.org

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408885
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste