我有一个扩展名为 .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