2012-06-12 3 views
0

Я работаю над расширением для Alfred, которое использует touch для создания нового файла в текущей выбранной папке в Finder и затем копирует путь к новому файлу. Поскольку я не был уверен, была ли команда, которая могла бы скопировать путь к этому вновь созданному файлу, я использую find, чтобы найти файл, который отлично работает. Затем я использую pbcopy, чтобы скопировать путь в мой буфер обмена. Формат пути, который копируется, равен /Users/doug/Desktop//me.md.Замените папку пользователя на ~ и // с помощью/

Я хотел бы заменить /Users/doug с ~ и заменить // между Desktop & me.md с / поэтому окончательный путь ~/Desktop/me.md.

Если это помогает, вот весь мой сценарий, я использую в Alfred:

folder=`osascript -e 'tell application "Finder" to set theFolder to POSIX path of (target of window 1 as alias)'` 
cd "$folder" 
touch {query} 
find "$folder" -maxdepth 1 -mmin -1 -name "*.md" | pbcopy 

{query} поле заменяется, что набирается Альфред, который в данном случае будет имя файла вновь созданный файл.

ответ

0

Вы можете сделать это легко с помощью СЭД:

find "$folder" -maxdepth 1 -mmin -1 -name "*.md" | sed -e 's#/Users/doug#~#;s#//#/#' | pbcopy 
+0

Wow. Легко. Благодарю. Раньше я никогда не слышал о «sed». – jarhead