我想将剪贴板替换为其 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