Mailinglist Archive: opensuse-de (6694 mails)
| < Previous | Next > |
Re: Verzeichnisse vergleichen
- From: Christian Boltz <christian.boltz@xxxxxxxx>
- Date: Wed, 16 Jan 2002 23:50:47 +0100
- Message-id: <200201162314.32398@xxxxxxxxxxxxxxx>
Hallo Jürgen, hallo Bernd, hallo Leute,
Am Mittwoch, 16. Januar 2002 08:22 schrieb Juergen Schwarting:
heute schon wieder zu müde ;-)
Naja, wofür gibt es ein Wochenende?
Die letzten 2 Zeilen habe ich zwar noch nicht ganz verstanden, aber sie
scheinen zu funktionieren ;-)
Jetzt muss ich nur noch (per if oder case) die Ausgabe von diff auswerten.
netter Trick ;-)
Danke für die Tips!
So langsam wird es wohl Zeit für einen Ausdruck der man bash...
Gruß
Christian Boltz
--
Registrierter Linux-Nutzer #239431
Linux - life is too short for reboots.
Am Mittwoch, 16. Januar 2002 08:22 schrieb Juergen Schwarting:
* Am 15.01.2002 um 23:56 Uhr schrieb Christian Boltz:
Hier also der Zwischenstand:
$ diff -r -q verz_a/ verz_b/
Files verz_a/changedfile and verz_b/changedfile differ
Only in verz_a/: new_in_a
Only in verz_b/: new_in_b
Für das Schreiben des Scripts bin ich jetzt aber zu müde ;-)
heute schon wieder zu müde ;-)
Naja, wofür gibt es ein Wochenende?
Grundgedanke ist der folgende:
diff-Ausgabe in eine Datei umleiten [1], diese
mit while und read $1 $2 $3 $4 $5 zeilenweise einlesen, dann
- falls $1 = "Files" -> Datei geändert -> $2 [2] ins Changed-Verzeichnis
- falls $1 = "Only" und $3 = "verz_a" -> neue Datei -> $4 ins
Changed-Verz. - falls $1 = "Only" und $3 = "verz_b" -> gelöschte Datei ->
Hinweis ausgeben
[1] sollte auch mit einer Pipe gehen, oder?
[2] "verz_a/" muss ich natürlich aus $2 herauslöschen lassen.
TEST=`echo "verz_a" | cut -c 7-` sollte das erledigen.
zu [1]
diff -r -q verz_a/ verz_b/ |
while read Zeile; do
set -- $Zeile
echo "$1 # $2 # $3 # $4 # $5" # nur als Beispiel
Die letzten 2 Zeilen habe ich zwar noch nicht ganz verstanden, aber sie
scheinen zu funktionieren ;-)
Jetzt muss ich nur noch (per if oder case) die Ausgabe von diff auswerten.
done
zu [2]
Zeile="verz_a/bla/blub.txt" # zu zerlegende Zeile
echo ${Zeile:7} # schreibt alles ab der 8 Stelle
# 0-7 wird übersprungen
bzw.
echo ${Zeile#verz_a/} # entfernt 'verz_a/' aus der Zeile
hiermit spart man sich den Aufruf des externen <cut> ;-)
netter Trick ;-)
Danke für die Tips!
So langsam wird es wohl Zeit für einen Ausdruck der man bash...
Gruß
Christian Boltz
--
Registrierter Linux-Nutzer #239431
Linux - life is too short for reboots.
| < Previous | Next > |