Ich würd's so machen:
So könnte man das Script irgendwo speichern und es mit einem Pfad als argument ausführen, z.b.Code:#!/bin/bash SRC_PATH=${1:-$(dirname "$0")} OUT_FILE="out.txt" TEXT_1='<td style="vertical-align: middle; height: 140px; width: 200px; text-align: center;"><a class="fancybox-effects-a" href="../images/' TEXT_2='" data-fancybox-group="gallery2" ><img src="../images/' TEXT_3='" alt=""></a></td>' find "$SRC_PATH" -maxdepth 1 -type f -name '*_f.jpg' -exec basename '{}' \;| \ while read file do echo "$TEXT_1 $file $TEXT_2 $(echo $file|awk '{sub(/_f\./,"_t.");print}') $TEXT_3" done > "$SRC_PATH/$OUT_FILE"
Es erstellt dann OUT_FILE in /pfad/der/fotosCode:./dasscript.sh /pfad/der/fotos
Oder, um deine letzte Frage zu beantworten, du kopierst es eben in /pfad/der/fotos, nennst es nicht "script.sh" sondern "script.command" und doppelklickst es aus dem Finder.
Ergebnis 11 bis 15 von 15
- 27.01.2012, 09:27 #11Fießers Erstling
Themenstarter
- Registriert
- 01.2012
- Beiträge
- 130
>Du wechselst oben in der ersten Spalte von 1 auf 2 auf drei,
Etzertla, jetzt habe ich verstanden. Natürlich, Du hast recht, der Text für die erste Spalte bleibt natürlich für alle Zeilen gleich/fix -> war mein Tippfehler
Ich hätte noch eine Frage zu den unterschiedlichen Vorgehensweisen, die hier benutzt wurden, um das erzeugte Ergebnis in eine Datei wegzuschreiben.
Ich verstehe es so:
Methode 1 - aus dym Python-Script (sammelt zuerst den Output in einer Iteration-Schleife und schreibt ihn "am Stück" in eine Outputdatei, also die Outputdatei wird nur ein mal auf- und zugemacht)
fotolist = "$(ls *_f.jpg)"
resultlist = []
for i in range(len(fotolist)):
foto = fotolist[i]
thumb = "$(echo $foto | sed "s/_f.jpg/_t.jpg/")"
res = "TXT1" + foto + "TXT2" + thumb + "TXT3"
resultlist.append(res)
print resultlist > output.html
Methode 2 - Mischung aus dym Python-Script und meinem Script (sammelt zuerst den Output in einer "for xxx in yyy do" Schleife und schreibt ihn "am Stück" in eine Outputdatei, also die Outputdatei wird nur ein mal auf- und zugemacht)
fotolist = "$(ls *_f.jpg)"
resultlist = []
for foto in $fotolist
do
thumb = "$(echo $foto | sed "s/_f.jpg/_t.jpg/")"
res = "TXT1" + foto + "TXT2" + thumb + "TXT3"
resultlist.append(res)
done
print resultlist > output.html
Methode 3 - mein erster Script (jede einzelne Outputzeile, ermittelt in einer "for xxx in yyy do" Schleife wird direkt in eine Outputdatei - also die Outputdatei wird mehrmals, pro Output-Zeile auf- und zugemacht)
fotolist= "$(ls *_f.jpg)"
for foto in $fotolist
do
thumb="$(echo $foto | sed "s/_f.jpg/_t.jpg/")"
echo TXT1 $foto TXT2 $thumb TXT3 >> output.html
done
Habe ich das richtig verstanden?
Und noch eine Frage. Ich habe den Script als create_code.sh benannt und in dem Foto-Verzeichnis gespeichert.
Was muss ich tun, damit ich ihn per Doppelcklick aus dem Finder starten kann? Zur Zeit wird er dabei in Texteditor geöffnet und zum Starten muß ich Terminal öffnen.Geändert von Mister Cool (27.01.2012 um 09:51 Uhr)
- 30.01.2012, 11:32 #12The cause of the problem is:
Don't worry; it's been deprecated.
The new one is worse.
- 01.02.2012, 18:11 #13Fießers Erstling
Themenstarter
- Registriert
- 01.2012
- Beiträge
- 130
Herzlichen Dank!!
das werde ich gleich ausprobieren
- 10.02.2012, 12:23 #14Fießers Erstling
Themenstarter
- Registriert
- 01.2012
- Beiträge
- 130
Hi,
inwischen macht mein Script alles was ich brauche und kann per doppelklick aus dem Finder gestartet werden, hat allerdings einen kleinen Schönheitsfehler - nach der Ausführung bleibt das Terminalfester offen, und nach jedem Doppelklick kommt ein neues Fenster dazu.
Wie kann ich das System dazu veranlassen, nach der Ausführung des Skripts das Terminalfenster wiederzuschliessen?
- 22.02.2012, 17:03 #15
Hmm dann mit AppleScript.
Mall schnell zusammengesponnen (ginge natürlich eleganter... ^^):
Das Ganze als App gespeichert und ab dafür.Code:property TEXT1 : "<td style=\"vertical-align: middle; height: 140px; width: 200px; text-align: center;\"><a class=\"fancybox-effects-a\" href=\"../images/" property TEXT2 : "\" data-fancybox-group=\"gallery2\" ><img src=\"../images/" property TEXT3 : "\" alt=\"\"></a></td>" property findMask : "*_f.jpg" set srcPath to choose folder with prompt "Ordner auswählen" with multiple selections allowed repeat with aFolder in srcPath repeat 1 times --fake continue --liste mit den files restellen set scFiles to paragraphs of (do shell script ¬ "find " & quoted form of (POSIX path of aFolder) & " -maxdepth 1 -type f -name '" & findMask & "' -exec basename '{}' \\;") --überprüfen ob was gefunden wurde, wenn nicht fake continue if (count of scFiles) < 1 then display alert "Keine Dateien gefunden!" message "Pfad: " & POSIX path of aFolder & return & "Maske: " & findMask as warning exit repeat --das ist fake continue end if --ausgabedatei erfragen set outFile to ¬ (choose file name with prompt "Ausgabedatei angeben für Ergebnisse aus" & return & POSIX path of aFolder default name "out.txt" default location aFolder) -- gibt einen alias zurück --outlist erstellen set outList to {} repeat with aFileName in scFiles set outList to outList & ¬ (TEXT1 & aFileName & TEXT2 & (do shell script "echo " & aFileName & "|awk '{sub(/_f\\./,\"_t.\");print}'") & TEXT3) end repeat --ergebnisse in datei outFile schreiben try open for access outFile with write permission set oATID to AppleScript's text item delimiters set AppleScript's text item delimiters to return write (outList as string) to outFile set AppleScript's text item delimiters to oATID close access outFile on error e try close access outFile end try display alert "Fehler beim bearbeiten von" & return & POSIX path of aFolder message e buttons {"Abbrechen", "Weiter"} cancel button 1 as warning end try end repeat end repeat display alert "Feddsch!" buttons {"OK"} as informationalThe cause of the problem is:
Don't worry; it's been deprecated.
The new one is worse.


Zitieren
