Wie kann ich eine Automator Aktion in bash mit Dateien und Ordnern als Argumente schreiben?
Frage
Wenn ich eine Automator Aktion in XCode mit Bash, werden alle Dateien und Ordner Pfade erstellen sind stdin gedruckt.
Wie kann ich den Inhalt dieser Dateien? Was auch immer ich versuche, erhalte ich nur die Dateinamen in der Ausgabe.
Wenn ich nur „Run Shell-Skript“ wähle ich wählen kann, wenn ich alles stdin will oder als Argument. Kann dies für ein XCode-Projekt zu tun?
Es ist fast einfaches Applescript zu verwenden, und lassen Sie diese Sicht der Bash.
Ich habe versucht, so etwas wie
xargs | cat | MyCommand
Lösung
Was ist das Rohr zwischen xargs
und cat
dort? Versuchen
xargs cat | MyCommand
oder, besser,
xargs -R -1 -I file cat "file" | MyCommand
, um richtig Dateinamen mit Leerzeichen usw. zu behandeln.
Wenn stattdessen wollen Sie myCOMAND für jede Datei aufgerufen wird,
local IFS="\n"
while read filename; do
MyCommand < $filename
done
kann auch nützlich sein.
Andere Tipps
read
werden Zeilen aus dem Skript stdin lesen; so stellen Sie sicher zu Satz $IFS
auf etwas, das nicht stört, wenn der Pfad-Name ohne Schrägstriche gesendet werden, entweicht keine Leerzeichen:
OLDIFS="$IFS"
IFS=$'\n'
while read filename ; do
echo "*** $filename:"
cat -n "$filename"
done
IFS="$OLDIFS"