如何在终端上从剪贴板将文件标准输入?

如何在终端上从剪贴板将文件标准输入?

我想将剪贴板替换为其 base64 编码表示。我的一项任务包括能够将复制的文件导入到base64

对于复制的文本我可以简单地执行以下操作:

pbpaste | base64 | pbcopy

不幸的是,pbpaste仅返回我在 Finder 中最后复制的元素的名称(而不是完整路径)。

我如何对复制的文件(而不是纯文本)执行上述操作?

答案1

当剪贴板包含文件时姓名

base64 "$(pbpaste)" | pbcopy

如果您不知道剪贴板包含什么,是某些文本还是文件名,您可以执行以下操作:

contents=$(pbpaste)
if [[ -f "$contents" ]]; then
    # it's a file, grab the file contents
    contents=$(cat "$contents")
fi
echo "$contents" | base64 | pbcopy

echo添加尾随换行符,你可能需要

printf '%s' "$contents" | ...

答案2

使用 AppleScript 可以这样做:

base64 "$(osascript -e 'POSIX path of (the clipboard as «class furl»)')" | pbcopy

相关内容