Wie kann ich eine Automator Aktion in bash mit Dateien und Ordnern als Argumente schreiben?

StackOverflow https://stackoverflow.com/questions/2169206

  •  24-09-2019
  •  | 
  •  

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
War es hilfreich?

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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top