Dateilesen & weiterverarbeiten

C

caller1982

Grünschnabel
Hallo, ich hab bei folgendem Skript
Code:
#!/bin/sh
echo "Alte temporaere PS-Files loeschen..."
echo "Loeschen der Alten Versionsliste & neu erstellen"
echo '' > lyxliste.size
while read line
do
echo $line
ls -la $line >> lyxliste.size
done < lyxliste

folgende Ausgabe:
....
/home/caller/Documents/Darmstadt/Modellierung/FS-Modellierung-SS05.lyx
: Datei oder Verzeichnis nicht gefundendellierung/FS-Modellierung-SS05.lyx
....
Ich habe keine Ahnung warum das ls-la nicht geht, direkt in der Kommandozeile geht der Befehl

DANKE FÜR TIPPS

Marco
 
Zuletzt bearbeitet:
Bei mir läuft dein Script ohne Fehlermeldungen, sobald ich in lyxliste eine existierende Datei angebe. Ist die Fehlermeldung tatsächlich so verstümmelt (beginnend mit : und nur der halbe Dateiname)?
 
Hast du (oder wer anderes) eine idee, woran das liegen könnte, bzw. wie mann es besser macht?
 
Keine Ahnung was da schief läuft. Wie gesagt, bei mir tuts das Script ja. Die Frage wie man es besser macht, kann ich erst beantworten, wenn ich weiß welche Aufgabe mit diesem Script gelöst werden soll.
 
Also:
Ich schreibe regelmäßig diverse LyX Dateien (ein WYSIWYM) Frontend für LaTeX.
Dieses Skript soll nun überprüfen, od die Dateien sich set dem letzten start verändert haben, und die geänderten neu compilieren und ins Netz uploaden
Das ganze skript soll in etwa so aussehen
Code:
#!/bin/sh
echo "Fuer jede Datei prufen ob sie noch aktuell ist. Wenn nicht neues PDF und HTML erstellen und uploaden"
while read line
do
echo Ueberpruefen von: $line .lyx
if (test (ls -la $line .lyx) -ne (less lyxliste.size | grep $line .lyx)); then
	echo pdf und HTML neu erstellen
	~/Documents/LyX/lyxport-0.3/lyxport $line
	echo uploaden
	
	sed -e "s/OOO/$line/g" ~/bin/upload.ftpCommands > "$line.tmp"
	lftp "$line.tmp"
	rm "$line.tmp"
	
else
	echo ok
fi
done < lyxliste



echo "Loeschen der Alten Versionsliste & neu erstellen"
echo '' > lyxliste.size

while read line
do
echo $line .lyx
ls -la $line .lyx >> lyxliste.size
done < lyxliste

Wie könnte man soetwas alternativ umsetzen?
 
Zur Überprüfung der Integrität der lyx Dateien würde ich md5sum nutzen. In einem einmalig auszuführenden ersten Schritt muss für jede zu überwachende Datei eine Prüfsumme mit md5sum gebildet werden:

md5sum Dateiname > Dateiname.md5

Nachdem diese Vorarbeit geleistet wurde, kann jetzt ein Script alle *.md5 Dateien auf gültige Hashes überprüfen.

md5sum --check Dateiname.md5

Immer dann, wenn eine der zu überwachenden Dateien geändert wurde, steht nach Ausführung dieses Kommandos in $? (Exitstatus des letzten Vordergrund Kommandos) eine 1. Andernfalls eine 0.
Im Falle einer 1 in $? wird die so ermittelte Datei nach Gusto verarbeitet, und der neue Hash in die zugehörige .md5 Datei geschrieben.
Auf diese Weise entfällt die Notwendgkeit, die Liste der zu überwachenden Dateien zwei Mal abzuarbeiten. Auch auf die Datei lyxliste kann dann verzichtet werden.
 

Ähnliche Themen

Skript soll nicht doppelt laufen... kill pkill pid cron

Shell Skript beschleunigen

Summe von Zahlen in einer Zeilen bilden

[Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen

Textdatei zeilenweise in durchnummerierte Variablen schreiben

Zurück
Oben