1

Можно ли заставить TextEdit сохранить безымянный открытый файл с первой строкой (или первым словом) текста этого документа?

Например: я создаю новый текстовый документ в TextEdit; напишите первую строку так, как я хочу, чтобы имя файла также было, скажем: "Тест"; Я закрываю документ и получаю файл, сохраненный как «Test.xxx»

Спасибо

1 ответ1

0

Решение, использующее сценарий оболочки или рабочий процесс Automator

Откройте Automator и создайте рабочий процесс. Когда вас попросят выбрать тип рабочего процесса, выберите тот, который соответствует вашим предпочтениям.

Перетащите шаблон Utilities »Run Shell Script в пустой рабочий процесс; это открывает большое текстовое поле. Вставьте следующий код в текстовое поле:

#!/bin/bash
EXTENSION=xxx
SCRIPT_NAME='Create a file whose first line determines the file name'

TMP_FILE="$(mktemp -dt "create_file_whose_first_line_determines_file_name.XXXXXXXXXX")/New file whose first line determines the file name.txt"
echo 'untitled.txt' > "${TMP_FILE}" && open -neW "${TMP_FILE}"

TARGET_FILE="$(head -n 1 "${TMP_FILE}").${EXTENSION}"
if tail -n +2 "${TMP_FILE}" >> "${TARGET_FILE}"
then
  osascript -e "display notification \"${TARGET_FILE}\" with title \"File created\""
  open -R "${TARGET_FILE}"
else
  osascript -e "display notification \"${TARGET_FILE}\" with title \"Unable to create file\""
  open -R "${TMP_FILE}"
fi

(Примечание. Измените EXTENSION=xxx на любое необходимое вам расширение.)

Сохраните рабочий процесс в любом удобном месте. Запустите рабочий процесс без аргументов; он откроет временный файл в новом экземпляре TextEdit и будет ждать, пока вы сохраните и закроете TextEdit. Затем скрипт создаст файл в соответствии с вашими требованиями.

В случае успеха скрипт покажет вновь созданный файл в Finder.

Если скрипт не может создать файл, он покажет временный файл в Finder.

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