从 Bash 脚本设置“打开方式”元数据

从 Bash 脚本设置“打开方式”元数据

我有一个扩展名为 .log 的文件,但我已将此特定文件设置为在 TextWrangler 而不是 Console.app 中打开(使用 Finder 的“获取信息”面板中的“打开方式”)。

我有一个 Bash shell 脚本(.sh),它使用 SED 以内联方式替换文件中的某些文本,如下所示:

sed -i "" "s_find_replace_g" "$FILENAME"

问题是,脚本运行后,“打开方式”关联消失;文件再次使用 Console.app 打开。脚本中是否有任何方法可以解决这个问题,比如在行后重新设置相应的元数据sed

答案1

这不是一个“纯”的 Bash 解决方案,但 Mac 元数据也不是纯 Unix。我正在内联调用 AppleScript:

sed -i "" "s_find_replace_g" "$FILENAME"

osascript <<-EOF
    set afile to "${FILENAME}"
    set default_app to (path to application "TextWrangler") as text
    tell application "System Events"
        set default application of disk item afile to default_app
    end tell
EOF

相关内容