Nur ein Vorschlag (Programmablauf)
Schaue nach ob /var/run/[DeinSkript].pid existiert.
(bash: if test -e "/var/run/[DeinSkript].pid")
Wenn ja
- Abbruch mit Meldung, dass das Programm vermutlich schon läuft weil /var/run/[DeinSkript].pid existiert, dem Benutzer soundso gehört und die PID drin steht. (ps ax | grep [DeinSkript]) tut es ggfs. auch.
schreibe die aktuelle PID nach /var/run/[DeinSkript].pid (bash: echo $$ > /var/run/[DeinSkript].pid)
sortiere Datei.alt und Datei.neu nach Datei.tmp (dabei werden diese auch zusammengeführt, mehr mit man sort)
Nimm den awk und gehe die Zeilen von Datei.tmp durch, lenke die Ausgaben nach Datei.alt:
Für jede Zeile
-Wenn Variable letzterWert gleichen Wert hat wie der Wert aus Kriteriumspalte, dann:
- nichts.
-Wenn aber der Wert aus Kriteriumspalte anderen Wert hat als Variable letzterWert, dann
- gib Daten aus
- setze Variable letzterWert auf Wert der Kriteriumspalte
Nächste Zeile
[Ende awk]
Verfahre mit Datei.neu nach Deinen Wünschen
Lösche /var/run/[DeinSkript].pid
exit;
Wenn es kein Linux ist (dann hättest Du vermutlich mindestens Perl), dann passe den Pfad für das PID-File an.
Bei geschickter Programmierung kann Datei.tmp auch eine Variable in der Shell sein.
Tipp: Während der Entwicklungsphase wirst Du natürlich nicht Deine Daten zerstören sondern in eine andere Datei schreiben.
Fred