I sh чтобы создать временный файл, используя mktemp
, а затем отредактировать его содержимое после создания (используя предпочитаемый вами редактор; я использовал micro
), а затем, когда он завершится, т.е. сохранится / выйдет из процесса, он должен вывести путь в файл, чтобы stdout / pipe / заменить на месте в качестве аргумента.
Я могу сделать все, кроме печати пути созданного и используемого файла. Я не хотел бы полагаться на способность редакторов выводить путь при закрытии, чтобы можно было использовать любой редактор.
То, что я пытался.
# creates a file. passes it's path to editor to open it.
# then we can make changes and save. finally quit.
> micro (mktemp)
Но вывод - ничто, я хочу, чтобы быть переданным исходным путем. Как я могу это сделать?
Это примеры использования, они не работают, так как я не могу вывести путь после сохранения.
# e.g. a full test case; create tmp file, fill it, read it, find it...
> micro (mktemp) | cat | grep 'find me*!'
# or you want to count the words
> micro (mktemp) | tail | wc
# another way it should work as well! i.e. pros-sub
> cat (micro (mktemp)) | sed 's/red/green/g'
# bonus points (I mean it, 50 extra karma). You might need to restructure the chain
# i.e. ->create tmp, fill it, save it, read it, manipulate it, save it
# back to disk (append/replace)
> cat (micro (mktemp)) | sed ' s/red/green/g' >> <original_file_path>
Я работаю в fish
, потому что у меня розовые глаза и я ищу решение в этом. Однако, если вы уже знаете это в bash
, хотели бы увидеть это и могут быть полезны. Так что я буду отмечать оба