Записать отредактированное содержимое файла в stdout

Записать отредактированное содержимое файла в stdout

Мне нужен визуальный текстовый редактор, который можно использовать следующим образом — пример работать не будет, но иллюстрирует суть.

gpg2 -d x.gpg | gedit -w - | gpg2 -e -o x.gpg

Эта команда позволит мне расшифровать файл, отредактировать его и повторно зашифровать, при этом файл никогда не будет существовать на диске в незашифрованном виде. Проблема в том, чтобы найти редактор, который может сохранять отредактированное содержимое в stdout. Единственный редактор, который я смог найти, это ed, который очень неудобен в использовании. Я бы предпочел визуальный редактор. Есть ли редактор, который может это сделать, или альтернативно может расшифровывать и шифровать файлы в редакторе?

решение1

Вы можете использоватьvipeдля редактирования трубопроводов:

SYNOPSIS
       command1 | vipe | command2

DESCRIPTION
       vipe allows you to run your editor in the middle of a unix pipeline and
       edit the data that is being piped between programs. Your editor will
       have the full data being piped from command1 loaded into it, and when
       you save, that data will be piped into command2.

ENVIRONMENT VARIABLES
       EDITOR
           Editor to use.

Хитрость в использовании графических редакторов заключается в том, чтобы гарантировать, что он не ответвится и не запустит отдельный процесс. Например, чтобы использовать GVim:

gpg2 -d x.gpg | EDITOR='gvim -f' vipe | gpg2 -e -o x.gpg

Я полагаю, вам нужно будет использовать -sопцию с gedit:

-s, --standalone
      Run gedit in standalone mode.

Так:

gpg2 -d x.gpg | EDITOR='gedit -s' vipe | gpg2 -e -o x.gpg

В качестве альтернативы вы можете попробоватьэтот плагинс Вимом.

Связанный контент