Gå til innhold

utdrag av en txt til .txt


Anbefalte innlegg

Videoannonse
Annonse
Muligheter for at noen mekker/viser ossen jeg gjør sånn at det jeg ber om skjer?

 

 

mvh disco808

7107417[/snapback]

 

CLISP og cl-ppcre (begge fungerer både under Linux og Windows):

 

#!/usr/bin/env clisp

;; see http://clisp.cons.org/impnotes/quickstart.html



(asdf:operate 'asdf:load-op :cl-ppcre)


(defmacro awhile (result-symbol expr &body body)
 (let ((ret (gensym)))
   `(let ((,ret nil))
      (do ((,result-symbol ,expr ,expr))
          ((not ,result-symbol) ,ret)
        (setf ,ret ,@body)))))


(with-open-file (ss (first ext:*args*))
 (awhile line (read-line ss nil nil)
   (let ((p1 (subseq line 2 6))
         (p2 (cl-ppcre:split "#|\\s" (subseq line 7))))
     (format t "data from line: '~A', '~A', '~A'~%"
             p1 (first p2) (second p2)))))

 

M$XXXX#872D23C25EDE820A993ED63AD773DDF1 YYYYY

M$BBBB#972F23E25EDE320A093ES63AD873DPF1 AAAA

M$BBBB#972F23E25E0aaoeuaoeu93ES63AD873DPF1 AAAA34ui

M$BBBB#972F23E25EDE320A093EaoeuoaeuiueS63AD873DPF1 AAAA23u23ui

 

lars@ibmr52:~/programming/lisp/clisp$ ./script2.lisp disco808.txt
data from line: 'XXXX', '872D23C25EDE820A993ED63AD773DDF1', 'YYYYY'
data from line: 'BBBB', '972F23E25EDE320A093ES63AD873DPF1', 'AAAA'
data from line: 'BBBB', '972F23E25E0aaoeuaoeu93ES63AD873DPF1', 'AAAA34ui'
data from line: 'BBBB', '972F23E25EDE320A093EaoeuoaeuiueS63AD873DPF1', 'AAAA23u23ui'

 

edit:

ser du bare var ute etter de på "yttersidene", men jeg har tatt med den "i midten" også - rop om du ikke greier å fjerne dette selv

Endret av lnostdal
Lenke til kommentar
Der skjønte jeg desverre lite du :p

7107788[/snapback]

 

ok, vel dette er umulig å få til med kun et batch-script .. så du må sette deg inn i et språk om du skal forstå dette

 

språk som passer til denne type oppgaver er:

 

* python

* common lisp (dette er hva jeg brukte her)

* perl

* ruby

 

..vel, dette er de mest vanlige til slike oppgaver vil jeg tro..

 

edit:

skal du jobbe med veldig store datamengder er common lisp raskest av disse - om du ønsker noe ennå raskere kan optimalisert C være ennå raskere i noen tilfeller (men C er et helvette å jobbe med; så drop C - optimaliser altid til sist)

Endret av lnostdal
Lenke til kommentar

Her har du et vbs-script som kanskje gjør jobben slik du vil ha det (skriver ut det under XXXX og YYYYY):

 

Set fso = CreateObject("Scripting.FileSystemObject")

Dim path1, path2, ar

path1 = "C:\inn.txt" 'Sett inn inn-fila's adresse

path2 = "C:\ut.txt" 'sett inn ut-fila's adresse

Set innFil = fso.OpenTextFile(path1, 1)

Set utFil= fso.OpenTextFile(path2, 2,true)

Do While innFil.AtEndOfStream <> True

c = innFil.readline

ar = Split(c,"#")

d = ar(0)

ar = Split(d,"$")

x = ar(1) 'XXXX/AAAA

ar = Split(c," ")

y = ar(1) 'YYYY/BBBB

utFil.writeline x & " " & y

Loop

innFil.close

utFil.close

Lenke til kommentar
Gjest
Dette emnet er stengt for flere svar.
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...