Möglichkeit Datensplittung über Shell-Skript

freshman2017
Goto Top
Abend in die Runde,

habe da eine Frage, vielleicht kann mir jemand helfen. Gibt es eine Möglichkeit folgendes über ein Shell-Skript abzubilden?
-> Eingangsdatei (.txt) mit Inhalt von Zahlen getrennt durch 2 Punkte: 50000..100000 -> 50000 einzelne Zahlen
-> in einer Ausgangsdatei (.txt) sollten die Zahlen aufgetrennt sein, immer in 1000 Schritten -> 50000..50999;51000..51999;52000..52999;
Wenn die 100000 erreicht sind, sollte das Skript stoppen....Kann mir wer sagen, ob so etwas möglich ist?

Beste Grüße....

Content-Key: 444849

Url: https://administrator.de/contentid/444849

Ausgedruckt am: 24.05.2022 um 20:05 Uhr

Mitglied: 139374
139374 27.04.2019 aktualisiert um 11:30:44 Uhr
Goto Top
Zitat von @freshman2017:
habe da eine Frage, vielleicht kann mir jemand helfen. Gibt es eine Möglichkeit folgendes über ein Shell-Skript abzubilden?
-> Eingangsdatei (.txt) mit Inhalt von Zahlen getrennt durch 2 Punkte: 50000..100000 -> 50000 einzelne Zahlen
-> in einer Ausgangsdatei (.txt) sollten die Zahlen aufgetrennt sein, immer in 1000 Schritten -> 50000..50999;51000..51999;52000..52999;
Wenn die 100000 erreicht sind, sollte das Skript stoppen....Kann mir wer sagen, ob so etwas möglich ist?

Grundsätzlich JA, alles was man mit Textdateien so anstellen kann, kann man auch entsprechend formatiert wieder ausgeben lassen.

back-to-topDazu aber ein paar Fragen da diese leider nicht deutlich aus der Fragestellung hervorgehen.

Gibt es eine Möglichkeit folgendes über ein Shell-Skript abzubilden?
  • Was interpretierst du als Shell-Script? Bash/CMD/Powershell/Python/Perl ... ??
-> Eingangsdatei (.txt) mit Inhalt von Zahlen getrennt durch 2 Punkte: 50000..100000 -> 50000 einzelne Zahlen
  • Wie sieht die Eingangsdatei exakt aus, laut deiner Schilderung könnte diese z.B.
so aussehen
aber auch so mit Zeilenumbrüchen und unterschiedlicher Anzahl an Zahlen
usw. also poste doch bitte für die Eingangsdatei ein echtes Beispiel.

> -> in einer Ausgangsdatei (.txt) sollten die Zahlen aufgetrennt sein, immer in 1000 Schritten -> 50000..50999;51000..51999;52000..52999;
  • Die Ausgangsdatei, sollen dort die Zahlen genau wie in der Eingangsdatei hinterlegt werden und nur mit Semikolon getrennt? Oder nur den niedrigsten und den höchsten Wert der jeweilgen tausender Serie mit ".." getrennt voneinander und diese dann per Semikolon getrennt? Denn in deinem Beispiel sieht das so aus, kann mich natürlich täuschen.

Also wenn ich mein Beispiel von oben nehme in der Ausgangsdatei so:
oder eben mit min max Werten:
? Also wäre es schön wenn du das auch klar stellen könntest. Danke.


Auf gut Glück so wie ich das interpretiert habe, kippe ich dir hier mal ein Bash-Einzeiler dafür hin:

Ciao.
Mitglied: freshman2017
freshman2017 26.05.2019 um 20:08:41 Uhr
Goto Top
Guten Abend,

Ich habe eine Ausgangsdatei (.txt) mit folgendem Inhalt:



Ich möchte gerne dass im ersten Schritt die .txt wie folgt aufgebaut ist, sodass alle 1500er Schritte die Zahlen aufgesplittet werden:

50000..51499;51500..52999;53000..54499;...

Ich würde allerdings gerne, dass hier das ganze via Batch bearbeitet wird :-) face-smile
Mitglied: rubberman
rubberman 26.05.2019 um 23:38:41 Uhr
Goto Top
Probier's so:
Steffen
Mitglied: freshman2017
freshman2017 27.05.2019 um 07:56:15 Uhr
Goto Top
Steffen, vielen Dank, das klappt.
Eine Frage / Anmerkung hätte ich zum Quelltext noch bei der ich noch „kämpfe“;


Wie kann im Outfile noch vor die „Spliitung“ (50000..51499) einen festen Wert setzen und hinter der „Splitting“ die Menge der Splittung hinterlegen?

infile:


outfile:

Mitglied: rubberman
rubberman 27.05.2019 um 13:14:15 Uhr
Goto Top
Zeile 7 ändern:
set "s=TEXT;%begin%.."

Zeile 17 hinzu:
set "s=%s%;500;"
... wobei ich keine Ahnung habe was du mit "Menge der Splittung" meinst und ob das nun ein fixer Wert ist oder nicht.

Steffen
Mitglied: freshman2017
freshman2017 27.05.2019 um 14:29:12 Uhr
Goto Top
Bei der Menge meine ich die Anzahl/Differenz Bspw. bei einer Ausgabe 50000..50999 wäre es 1000. Würde das gehen?
Mitglied: rubberman
rubberman 27.05.2019 um 18:22:35 Uhr
Goto Top
Also das was oben as Variable step definiert wurde?
Dann ändere die 500 zu %step% und fertig.

Steffen
Mitglied: freshman2017
freshman2017 27.05.2019 um 18:31:40 Uhr
Goto Top
Hi Steffen,
danke für deine Hilfe :-) face-smile echt Klasse!

Ich habe die Ausgangsdatei:


mit Nachfolgendem Code-Schnipsel:


Nachfolgenden Ausgang:


Ich würde aber gerne folgenden Ausgang haben:


:-) face-smile
Mitglied: rubberman
Lösung rubberman 27.05.2019 um 18:54:38 Uhr
Goto Top
Das was du hier tust nennt sich Scope Creeping. Ich bin dann auch mal weg ...
Mitglied: freshman2017
freshman2017 18.08.2019 um 19:21:00 Uhr
Goto Top
Zitat von @rubberman:

Das was du hier tust nennt sich Scope Creeping. Ich bin dann auch mal weg ...

Hi rubberman,

kannst Du mir vielleicht nochmal helfen? Was muss ich anpassen, damit auch eine Ausgangsdatei, die wie folgt aufgebaut ist, funktioniert:


Beste Grüße