Software > Programmieren, Kompilieren
nicht unten dran-haengen sondern oben drauf-kleben
llothar:
Ja hier sehen wir wieder mal das Problem das Filesysteme vom Programmiertechnischen sich seit fast 30 Jahren nicht verändert haben. Eine Datei als Queue die vorne und hinten anfügen und entfernen unterstützt und das reinschiessen von Löchern (Sparse Files) ist eigentlich so sinnvoll.
Aber egal. Ich würde gerne wissen wozu du das brauchst. Denn ich denke du setzt falsch an. Vorne und hinten sind technisch irgendwie gleich. Wenn es wegen anzeige der Daten ist ändere die Datenanzeige.
meik:
--- 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 ---
ein einzeiler waere mir aber trotzdem lieber gewesen. so muss cat zwei mal laufen und auf dauer, wenn die datei groesser wird, wird's immer langsamer.
--- Ende Zitat ---
Bei der Größenordnung würde ich mir um Performance keine Gedanken machen. Ein paar kB machen auf einem Rechner mit Gigabytes an RAM wirklich kein Problem.
Sollte das wirklich in messbare Regionen kommen, wirst du wahrscheinlich sowieso messen müssen, welche Variante die beste ist.
Was mir sonst noch eingefallen ist:
* cat kommt auch mit mehreren Files als Parameter zurecht
* eine Zeile einfügen geht auch mit sed statt ed
* wenn es mehr als eine Zeile sein soll, können ed und sed auch ein ganzes File einfügen.
* Einige sed Varianten (GNU z.B.) können mit -i auch die Datei in-place bearbeiten
signal_15:
$llothar
ich habe ein shell skript als cgi auf einem apachen laufen, welches neue nachrichten aus einem webformular zuerst in eine plain-text datei schreibt und diese dann in eine html seite einfuegt.
--- Code: ---#!/bin/sh
# create entry on the news page
umask=022
grep=/usr/bin/grep
awk=/usr/local/bin/awk
cat=/usr/local/bin/cat
temp1=/tmp/tmp.$$
temp2=/tmp/tmp.$$
mdate=`date "+%d %B %Y"`
mtime=`date "+%H:%M"`
newsdb=/var/www/news/news-db
newsindex=/var/www/news/index.shtml
newsheader=/var/www/news/news-header
newsfooter=/var/www/news/news-footer
eval `/usr/local/bin/proccgi.sh $*`
# build the news-db
echo "<tr><td>$mdate</td><td>$mtime</td><td></td><td><b>$FORM_ueberschrift</b></td></tr>" >> $temp1
echo "<tr><td> </td><td> </td><td></td><td>$FORM_nachricht <br><br></td></tr>" >> $temp1
$cat $newsdb >> $temp1
$cat $temp1 > $newsdb
# build the page
/usr/local/bin/cat $newsheader > $newsindex
/usr/local/bin/cat $newsdb >> $newsindex
/usr/local/bin/cat $newsfooter >> $newsindex
# clean up
rm -r $temp1
echo "Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<body><p>yeah, check the news site</p></body></html>"
exit 0
--- Ende Code ---
ct,
Edith sagt: Name falsch geschrieben.
llothar:
--- Zitat von: signal_15 am 02. April 2009, 13:00:35 ---$llothar
ich habe ein shell skript als cgi auf einem apachen laufen, welches neue nachrichten aus einem webformular zuerst in eine plain-text datei schreibt und diese dann in eine html seite einfuegt.
--- Ende Zitat ---
So was hab ich mir gedacht. Da du die Datei ja sowieso komplett liest häng es unten dran und mach ein "reverse" und beim dranhängen dann natürlich auch noch ein reverse. Man kann mittels tail -n auch die letzten zeilen ausgeben.
Vorne dran hängen würde ich nichts. Umkopieren ist viel aufwendiger als lesen und umdrehen.
signal_15:
@llothar
jetzt habe ich deinen faden verloren. wie meinen?
ct,
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln