У меня есть файл с расширением .log, хотя у меня есть этот конкретный файл для открытия в TextWrangler вместо Console.app (используя "Открыть с помощью" на панели "Получение информации" в Finder).

У меня есть сценарий оболочки Bash (.sh), который использует SED для замены некоторого текста в файле, встроенного, например, так:

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

Проблема в том, что после запуска сценария связь "Открыть с" исчезла; файл снова открывается с Console.app. Есть ли способ обойти это в сценарии, например, сбросить соответствующие метаданные после строки sed ?

1 ответ1

0

Это не "чистое" решение 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .