seth_not@home: Ultraedit, suche regulären Ausdruck, meiner reicht nicht!

Beitrag lesen

gudn tach!

ich war eben in eile und habe deswegen nicht noch mal drueber geschaut, was ich da eigentlich geschrieben hatte.

jetzt also noch ein paar praezisierungen/korrekturen.

[vim]

qqj3ddq25000@q:w<enter>

fertig.

erklaerung:
q beginne makro-aufzeichnung
q speichere das makro ins register "q"
j gehe in die naechste zeile
3dd loesche diese und die beiden folgenden zeilen
q beende makro-aufzeichnung
25000@q spiele das makro im register "q" 25000 mal ab.
:w<enter> speichere ergebnis ("<enter>" steht fuer das druecken der enter-taste)

das setzt voraus, dass die anzahl der zeilen der datei 100004 ist, weil durch das makro-aufzeichnen ja bereits die ersten vier zeilen abgehandelt wurden.

for /l %i in (1,4,12) do @more +%i test.txt | \usr\local\wbin\head -n1 > ausgabe.txt

in der bahn ist mir eingefallen, dass noch nicht ganz richtig ist.
(for /l %i in (1,4,12) do @more +%i test.txt | \usr\local\wbin\head -n1) > ausgabe.txt

sollte richtig sein.

12 muss noch durch die richtige anzahl der zeilen ersetzt werden.
kannst du ermitteln mit
  find /c ":" test.txt

wenn's flexibel gestaltet werden soll, geht das z.b. folgendermassen:

for /f "usebackq" %i in (find /c ":" test.txt ^| findstr ":" ^| sed -e "s/.\*: //") do set zeilenanzahl=%i
  (for /l %i in (1,4,%zeilenanzahl%) do @more +%i test.txt | \usr\local\wbin\head -n1) > ausgabe.txt

oder gleich in einem rutsch:

for /f "usebackq" %i in (find /c ":" test.txt ^| findstr ":" ^| sed -e "s/.\*: //") do @(for /l %j in (1,4,%i) do @more +%j test.txt | \usr\local\wbin\head -n1) > ausgabe.txt

wobei u.u. der pfad zu head.exe (\usr\local\wbin\head) noch angepasst werden muss.
dieses mal habe ich den code auch sicherheitshalber ausprobiert.

prost
seth