如何在 bash 中以文件和文件夹作为参数编写 Automator 操作?

发布于 2024-08-19 21:34:56 字数 290 浏览 8 评论 0原文

当我使用 Bash 在 XCode 中创建 Automator 操作时,所有文件和文件夹路径都会打印到标准输入。

我如何获取这些文件的内容? 无论我尝试什么,我只能在输出中得到文件名。

如果我只选择“运行 shell 脚本”,我可以选择是否希望所有内容都作为标准输入或作为参数。可以为 XCode 项目完成此操作吗?

使用 Applescript 并让它运行 Bash 几乎更容易。

我尝试过类似的东西

xargs | cat | MyCommand

When I create a Automator action in XCode using Bash, all files and folder paths are printed to stdin.

How do I get the content of those files?
Whatever I try, I only get the filename in the output.

If I just select "Run shell script" I can select if I want everything to stdin or as arguments. Can this be done for an XCode project to?

It's almost easier to use Applescript, and let that run the Bash.

I tried something like

xargs | cat | MyCommand

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

追我者格杀勿论 2024-08-26 21:34:56

xargs 和 cat 之间的管道在那里做什么?尝试

xargs cat | MyCommand

或更好地

xargs -R -1 -I file cat "file" | MyCommand

正确处理带有空格等的文件名。

相反,如果您希望在每个文件上调用 MyComand,

local IFS="\n"
while read filename; do
  MyCommand < $filename
done

也可能有用。

What's the pipe between xargs and cat doing there? Try

xargs cat | MyCommand

or, better,

xargs -R -1 -I file cat "file" | MyCommand

to properly handle file names with spaces etc.

If, instead, you want MyComand invoked on each file,

local IFS="\n"
while read filename; do
  MyCommand < $filename
done

may also be useful.

孤城病女 2024-08-26 21:34:56

read 将从脚本的标准输入中读取行;只需确保将 $IFS 设置为不会干扰发送路径名而没有反斜杠转义任何空格的内容:

OLDIFS="$IFS"
IFS=
\n'
while read filename ; do
  echo "*** $filename:"
  cat -n "$filename"
done
IFS="$OLDIFS"

read will read lines from the script's stdin; just make sure to set $IFS to something that won't interfere if the pathnames are sent without backslashes escaping any spaces:

OLDIFS="$IFS"
IFS=
\n'
while read filename ; do
  echo "*** $filename:"
  cat -n "$filename"
done
IFS="$OLDIFS"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文