[erledigt] Linux Frage
-
[erledigt] Linux Frage · SunCobalt (Gast) · 15.04.2011 20:06 · [flux]
ich habe ein kleines Linux Problem. Ich habe 106 einzelne DOP Dateien, die ich bearbeiten muss.
Wenn es eine einzelne Datei wäre, dann würde es so gehen
gdaladdo -ro --config USE_RRD YES -r gauss Datei.tif 2 4 8 16 32 64 128 256
Nur geht meine Lust, das 106 mal zu machen gegen 0...vor allem da das mehr als einen Tag dauern kann. Ich habe die folgende Idee gemailt bekommen und hätte gedacht, dass es so gehen müsste. Ich will nicht nochmal rückfragen. Sonst hält er mich noch für blöd....ihr könnt das ruhig tun 🙂
Im DOP Verzeichnis führe ich aus:
sudo find ./ -name *.tif -print0 | xargs -0 gdaladdo -ro --config USE_RRD YES -r gauss {} 2 4 8 16 32 64 128 256
Geht aber nicht. Da kommt:
thomas@SunCobalt:/osm/mapserver/fileserver/SentaDOP$ find ./ -name *.tif -print0 | xargs -0 gdaladdo -ro --config USE_RRD YES -r gauss {} 2 4 8 16 32 64 128 256
find: Der Pfad muà vor dem Suchkriterium stehen: 7C39-10-2.tif
Aufruf: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [Pfad...] [Suchkriterium]
ERROR 4: `{}' does not exist in the file system,
and is not recognised as a supported dataset name.Kann mir da jemand helfen? Das "7C39-10-2.tif" ist übrigends ein Dateiname. Danke schonmal
- Re: [erledigt] Linux Frage · MHohmann (Gast) · 15.04.2011 20:24 · [flux]
Mit -print und xargs bin ich mir nicht sicher - ich würde es mit -exec machen, dann müsste es so aussehen:
find ./ -name "*.tif" -exec gdaladdo -ro --config USE_RRD YES -r gauss {} 2 4 8 16 32 64 128 256 \;
Wichtig sind die Anführungszeichen bei "*.tif" und das abschließende "\;".
- Re: [erledigt] Linux Frage · SunCobalt (Gast) · 15.04.2011 20:28 · [flux]
super. Danke funktioniert 🙂
- Re: [erledigt] Linux Frage · kellerma (Gast) · 15.04.2011 20:53 · [flux]
Hi,
für die xargs-Benutzung müßte man evtl. eine sub-shell aufmachen:
$ find . -name "*.tif" -print0 | xargs -r0 sh -c 'gdaladdo -ro --config USE_RRD YES -r gauss "$@" 2 4 8 16 32 64 128 256' hihi
oder so ähnliich 😉
Ciao,
FrankEDIT:
Eiwo, gdaladdo kann nur jeweils eine Datei bearbeiten, dann ist -exec die bessere Wahl. - Re: [erledigt] Linux Frage · Fabi2 (Gast) · 15.04.2011 21:11 · [flux]
oder man macht:
for i in *.tif; do gdaladdo -ro --config USE_RRD YES -r gauss "$i" 2 4 8 16 32 64 128 256; done