OSX: Führe denselben Befehl für alle Dateien in einem Ordner aus

7

Ich verwende ein Befehlszeilentool namens TMX ( Ссылка ) Ich möchte diesen Befehl auf jeder .png-Datei in einem bestimmten Ordner ausführen. Wie kann ich das tun?

So wird es verwendet:

%Vor%

Prost.

    
Eyeball 21.05.2013, 20:51
quelle

2 Antworten

5
%Vor%

Wenn Sie alle diese Befehle in der richtigen Reihenfolge für jede Datei ausführen müssen, bevor Sie zur nächsten Datei wechseln, ist ein kleines Bash-Skript möglicherweise klarer.

%Vor%     
Chris Stratton 21.05.2013, 20:55
quelle
14

Ich denke, eine for/do -Schleife ist klarer und wahrscheinlich etwas schneller als find plus xargs . Angenommen, Sie verwenden die Standard-Shell, bash , unter OS X, lautet die allgemeine Form des Befehls, wenn Sie es als Einzeiler verwenden möchten:

%Vor%

Dabei ist <files> ein Ausdruck, der eine Liste von Dateien ergibt (normalerweise eine Platzhaltererweiterung), <somecommand> ist die Befehlszeile, die für jede Datei ausgeführt werden soll, und $f wird auf jede Datei in% co_de erweitert % im Gegenzug. Also würden Sie etwas wie folgt eingeben:

%Vor%

Sie können auch mehrere Befehle innerhalb der Schleife in derselben Zeile ausführen, indem Sie sie einfach mit Semikolon verketten. Also, wenn Ihre Frage bedeutet, dass Sie TMXResolutionTool drei Mal hintereinander in jeder Datei mit verschiedenen Parametern ablaufen lassen wollen:

%Vor%

Übrigens, das ist alles grundlegende <files> shell tricks; Es ist nicht spezifisch für OS X. Jedes Buch auf bash wird Ihnen all dies und mehr erzählen (obwohl, wenn Sie etwas über die Befehlszeile aus Mac-Perspektive erfahren möchten, empfehle ich das O'Reilly-Buch Unix für OS X Mountain Lion lernen ).

    
dodgethesteamroller 21.05.2013 21:13
quelle