Я не использую Рыба
, но документация говорит, что вы можете ввести символ Unicode, префиксировав свой шестнадцатеричный код символа с \ U
(для 16-битных символов) или \ U
(для 32-битных символов). Я думаю, что код для ♫
491EB
, поэтому вы можете сделать:
mv \U000491ebabc.mp3 abc.mp3
для переименования ♫ abc.mp3
.
Обратите внимание, что вам нужны ведущие нули, в противном случае ABC
в конце будет рассматриваться как шестнадцатеричные цифры, а также часть кода символов; Для 32-разрядного персонажа необходимо ввести 8 цифр.
Эта функция оболочки будет делать то, что вы спрашиваете:
vim() { bash script1.sh <"$1" >"$1.hide~"; /usr/bin/vim "$1.hide~"; bash script2.sh <"$1.hide~"; }
Используйте эту функцию следующим образом:
vim file
Разбивайте его на куски:
Bash Script1.sh <«$ 1»> 1. Хейд ~ "
$ 1
- это первый аргумент, который вы поставляете в сценарий, который должен быть именем файла. Это работает Script1.sh
с этим файлом на его stdin и записывает вывод во временный файл.
/ USR / BIN / VIM "$ 1. HIDE ~"
Это запускается реальным VIM
на выходе Script1.sh
.
Это предполагает, что редактор VIM
в вашей системе находится в / usr / bin
. Если он находится где-то еще, настройте определение функции соответствующим образом.
Bash Script2.sh <«$ 1.hide ~»
Это обеспечивает отредактированный файл в виде STDIN для Script2.SH
.
Чтобы сделать это определение функции постоянно, поместите его в качестве отдельной строки в вашем файле ~ / .bashrc
.
Инструментом для этого задания является FUSE (FUSE означает Filesystem in USErspace). FUSE позволяет реализовать файловую систему с помощью пользовательской программы. Если вы запускаете vim файл
и файл
находится на файловой системе FUSE, то программа, предоставляющая файловую систему, сгенерирует содержимое файла, когда Vim считывает из него, и сохранит (или не сохранит!) содержимое, когда Vim сохранит файл.
FUSE более сложна, чем то, что вы просите. Программа, предоставляющая файловую систему, управляет не только содержимым файла, но и структурой каталогов, правами доступа и т.д. Ей также необходимо управлять чтением и записью части каждого файла, если только вы не сделаете файлы недоступными для просмотра (что ограничит программы, которые могут работать над ними).
Я не знаю ни одного проекта, построенного на FUSE для предоставления простого интерфейса для манипулирования содержимым файлов, обеспечивая при этом классическую структуру каталогов. Есть примеры файловых систем, из которых можно скопировать код.