Software > Programmieren, Kompilieren

nicht unten dran-haengen sondern oben drauf-kleben

<< < (2/6) > >>

dornroeschen:
Dem Editör is nix zu schwör  ;D

--- Code: ---/usr/bin/echo '0a\nbla blub\n.\nw\nq' | ed -s $datei

--- Ende Code ---

Rainer

signal_15:
@dornroeschen
na also, geht doch. sieht doch schon mal recht vielversprechend (oder heisst es 'viel versprechend') aus. ich glaub nicht, dass ich das script noch heute anpassen werde. aber ich gebe dann bescheid.

ct,

mdjr:

--- Zitat von: dornroeschen am 01. April 2009, 16:44:18 ---Dem Editör is nix zu schwör  ;D

--- Code: ---/usr/bin/echo '0a\nbla blub\n.\nw\nq' | ed -s $datei

--- Ende Code ---

Rainer

--- Ende Zitat ---

Hallo.

Das wird allerdings bei großen Dateien nicht funktionieren.

Das "unten dran-Hängen" ist eine Operation, die jedes Betriebssystem von sich aus unterstützt. Ein direktes "oben dran-Kleben" ist bei den mir bekannten Dateisystemen (FAT, NTFS, UFS, EXT2) wohl unmöglich.

Die Datei muss beim "oben dran-Kleben" also komplett neu geschrieben werden. Dazu gibt es zwei Möglichkeiten:
- Die zwei-Dateien-Lösung
- Die Datei komplett in den RAM lesen und dann schreiben (Lösung mit dem "ed"-Editor)

Da bei großen Dateien aber nicht genügend RAM zur Verfügung steht, ist das ein Problem.


--- Zitat von: signal_15 am 01. April 2009, 15:52:20 ---habs nun folgendermasen gemacht:

--- Code: ---echo "bla blup" >> $temp1
cat $datei >> $temp1
cat $temp1 > $datei

--- Ende Code ---

--- Ende Zitat ---

Mehr Performance würde der folgende Code bringen, da kein zweites Umkopieren notwendig ist:

--- Code: ---echo "bla blup" > $temp1
cat $datei >> $temp1
rm $datei
mv $temp1 $datei

--- Ende Code ---
(Allerdings gehen dabei UID, GID, Mode, ... von "$datei" verloren)

Martin

signal_15:
@Martin

richtig. und ich brauche/habe folgendes:

--- Code: ---total 46K
drwxr--r--  2 root   other  512 Apr  1 16:35 .
drwxr-xr-x 14 root   other 1.0K Mar 31 14:02 ..
-rw-r--r--  1 daemon other 7.1K Apr  1 16:50 index.shtml
-rw-r--r--  1 root   other  12K Apr  1 14:22 index.shtml_Backup_2009_04_01
-rw-r--r--  1 daemon other 6.3K Apr  1 16:50 news-db
-rw-r--r--  1 root   other 1.2K Apr  1 14:37 test.shtml

--- Ende Code ---

man koennte das script als 'daemon' laufen lassen. aber dann muesste auch das verzeichnis dieser uid gehoeren, oder zumindest die schreib/lese-rechte geaendern werden. und das soll nicht sein.

ct,

dornroeschen:

--- Zitat von: mdjr am 02. April 2009, 07:41:29 ---
--- Zitat von: dornroeschen am 01. April 2009, 16:44:18 ---Dem Editör is nix zu schwör  ;D

--- Code: ---/usr/bin/echo '0a\nbla blub\n.\nw\nq' | ed -s $datei

--- Ende Code ---

Rainer

--- Ende Zitat ---

Hallo.

Das wird allerdings bei großen Dateien nicht funktionieren.

--- Ende Zitat ---

Völlig richtig. Jede Lösung ist gut/nicht gut bzw geht/geht nicht nur im Rahmen der bekannten/nicht bekannten Randbedingungen. Ich finde den ed  als Skripting Tool für Inline-Editing ganz interessant, solange klar ist, dass die Begrenzungen des Tools nicht überschritten werden. Beim Solaris ed sind dies die maximale Zeilenlänge von 512 Zeichen, und die Begrenzung der Zeilen durch die Speichergröße. Wie die Beschränkungen des GNU-ed aussehen, weiss ich jetzt nicht.

Alternativ kann man identisch auch den ex (vi) einsetzen, oder die ex-Variante des vim. Ich glaube nicht, dass vim oder auch nvi eine Beschränkung der Zeilenlänge haben.

Rainer

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln