Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
zeile am dateianfang einfügen
- Ersteller tmp
- Erstellt am
1
1668mib
Gast
Also ich bin kein Linux-Kenner, aber aus anderweitiger Programmiererfahrung weiß ich, dass das Einfügen in eine Datei von Haus aus selten richtig gut unterstützt wird im Gegensatz zum Anhängen... der Grund ist einfach... Beim Anhängen ist die Operation relativ simpel, Datei wird geöffnet, und am Ende kommt was dazu, d.h. alles was in der Date war bleibt unverändert...
Fügt man nun am Anfang was ein, dann verändert dies jeden einzelnen Sektor der Datei. Stell dir vor, die Festplatte ist in Schubladen (Sektoren bzw Zuordnungseinheiten) organisiert, jede Schublade kann nur von einer Datei genutzt werden... Möchtest du was in die erste Schublade hinzufügen, musst du was von der ersten in die zweite tun um Platz zu schaffen, und selbiges bis zu dieser bis du bei der letzten angekommen bist...
In der Praxis wird dies dann meist durch das Neuerstellen einer Datei, das Schreiben des Einzufügenden Textes, und dann das schlichte Kopieren aus der alten Datei in die neue und das anschließende Löschen der alten und das Umbenennen der neuen Datei in die alte...
Warum ich dir das erzähle? Weil ich irgendwie nicht glaube, dass es einen Standardbefehl gibt, der das erledigt... aber es hat sich bestimmt schon jemand die Mühe gemacht, ein kleines Konsolenprogramm zu schreiben, dass diese Arbeitsschritte durchführt. Wenn die Datei(en) nicht groß sind, dürfte es auch kein Problem darstellen in Sachen Ausführungsdauer/Performance...
Fügt man nun am Anfang was ein, dann verändert dies jeden einzelnen Sektor der Datei. Stell dir vor, die Festplatte ist in Schubladen (Sektoren bzw Zuordnungseinheiten) organisiert, jede Schublade kann nur von einer Datei genutzt werden... Möchtest du was in die erste Schublade hinzufügen, musst du was von der ersten in die zweite tun um Platz zu schaffen, und selbiges bis zu dieser bis du bei der letzten angekommen bist...
In der Praxis wird dies dann meist durch das Neuerstellen einer Datei, das Schreiben des Einzufügenden Textes, und dann das schlichte Kopieren aus der alten Datei in die neue und das anschließende Löschen der alten und das Umbenennen der neuen Datei in die alte...
Warum ich dir das erzähle? Weil ich irgendwie nicht glaube, dass es einen Standardbefehl gibt, der das erledigt... aber es hat sich bestimmt schon jemand die Mühe gemacht, ein kleines Konsolenprogramm zu schreiben, dass diese Arbeitsschritte durchführt. Wenn die Datei(en) nicht groß sind, dürfte es auch kein Problem darstellen in Sachen Ausführungsdauer/Performance...
Kampfgnom
Lt. Commander
- Registriert
- Jan. 2005
- Beiträge
- 1.075
Wie wärs wenn du die Datei eindach in einem Editor öffnest, "Enter" drückst, speicherst, schließt und fertig ^^
Beispiel nano (ein Editor): nano /datei. enter drücken. strg+o (speichern). strg+x (schließen).
So schwer ist es wirklich nicht
Beispiel nano (ein Editor): nano /datei. enter drücken. strg+o (speichern). strg+x (schließen).
So schwer ist es wirklich nicht
- Registriert
- Feb. 2004
- Beiträge
- 253
kampfgnom. ganz einfach deswegen,weil es automatisiert ablaufen muss. sonst würd ich ja nicht fragen,oder? 
es geht hier um große dateien (~200mb)
und da ich das von 1668mib beschriebene "problem" kenne,wollt ich eben mal wissen ob linux nicht von haus aus ein entsprechendes programm mitbringt.
es geht hier um große dateien (~200mb)
und da ich das von 1668mib beschriebene "problem" kenne,wollt ich eben mal wissen ob linux nicht von haus aus ein entsprechendes programm mitbringt.
Kampfgnom
Lt. Commander
- Registriert
- Jan. 2005
- Beiträge
- 1.075
Dass es automatisiert ablaufen soll ist aus deinem ersten Post aber nicht zu erkennen gewesen. Fragen könntest du auch weil du es einfach nicht weißt 
Ansonsten denke ich dass es tatsächlich so ablaufen wird dass du mit zwei echos arbeitest. Erst eine Leerzeile reinechoen und dann die originale Datei. So wie es 1668mib schon beschrieben hat.
Muss das ganze wirklich so schnell ablaufen dass dir diese Methode zu langsam wäre?
EDIT: Zusammengefasst muss ich sagen dass ich kein Programm kenne dass diese Aufgabe übernimmt, was aber eindeutig nicht heißt dass es keins gibt ^^
Ansonsten denke ich dass es tatsächlich so ablaufen wird dass du mit zwei echos arbeitest. Erst eine Leerzeile reinechoen und dann die originale Datei. So wie es 1668mib schon beschrieben hat.
Muss das ganze wirklich so schnell ablaufen dass dir diese Methode zu langsam wäre?
EDIT: Zusammengefasst muss ich sagen dass ich kein Programm kenne dass diese Aufgabe übernimmt, was aber eindeutig nicht heißt dass es keins gibt ^^
Heimwerker
Lt. Junior Grade
- Registriert
- Mai 2007
- Beiträge
- 457
@1668mib hübsche Erläuterung
@tmp
1. mv originaldatei tempdatei
2. echo "text" > originaldatei
3. cat tempdatei >> originaldatei
in UNIX wenn es sich um eine Textdatei handelt. Bei Binärdateien bin ich mir nicht Sicher, ob das funktioniert.
@tmp
1. mv originaldatei tempdatei
2. echo "text" > originaldatei
3. cat tempdatei >> originaldatei
in UNIX wenn es sich um eine Textdatei handelt. Bei Binärdateien bin ich mir nicht Sicher, ob das funktioniert.
- Registriert
- Feb. 2004
- Beiträge
- 253
vielen dank für eure hilfe.
komischerweise hab ich keine mail bekommen,dass antworten im thread gekommen sind?!
geschwindigkeit spielt bei dem programm leider eine ausserordentlich große rolle.
es geht nämlich um das lösen von (sehr großen) sudokus.
momentan löse ich 81x81 sudokus in ca 100 sekunden auf einem 1ghz pc.
problem ist,dass zB ein 81x81 sudoku kodiert ca 1.6gb gross ist -> wenn ich nun eine zeile an den anfang schreiben will,dauert es mit der oben beschriebenen methode ebenfalls sehr lang,da die daten ja kopiert werden müssen.
naja..montag ist schon der wettbewerb..bis dahin werd ich das wohl nicht mehr hinbekommen.
vielen dank trotzdem!
komischerweise hab ich keine mail bekommen,dass antworten im thread gekommen sind?!
geschwindigkeit spielt bei dem programm leider eine ausserordentlich große rolle.
es geht nämlich um das lösen von (sehr großen) sudokus.
momentan löse ich 81x81 sudokus in ca 100 sekunden auf einem 1ghz pc.
problem ist,dass zB ein 81x81 sudoku kodiert ca 1.6gb gross ist -> wenn ich nun eine zeile an den anfang schreiben will,dauert es mit der oben beschriebenen methode ebenfalls sehr lang,da die daten ja kopiert werden müssen.
naja..montag ist schon der wettbewerb..bis dahin werd ich das wohl nicht mehr hinbekommen.
vielen dank trotzdem!
- Registriert
- Feb. 2004
- Beiträge
- 253
ich bin gerade noch mal auf eine alternative idee gekommen.
vlt hat jemand von euch ja spontan eine antwort:
ist es möglich,bei grossen dateien die restlichen X zeilen am ende der datei zu entfernen,OHNE die komplette datei durchzugehen? also dass selbst bei einer 10gb datei nur 20ms dafür verwendet werden,um die letzten zeilen zu entfernen?
vlt hat jemand von euch ja spontan eine antwort:
ist es möglich,bei grossen dateien die restlichen X zeilen am ende der datei zu entfernen,OHNE die komplette datei durchzugehen? also dass selbst bei einer 10gb datei nur 20ms dafür verwendet werden,um die letzten zeilen zu entfernen?
Ähnliche Themen
- Antworten
- 6
- Aufrufe
- 647
- Antworten
- 2
- Aufrufe
- 1.512
- Antworten
- 13
- Aufrufe
- 9.947