Escreva conteúdo editado do arquivo para stdout

1

Eu preciso de um editor de texto visual que possa ser usado da seguinte forma: o exemplo não funcionará, mas ilustra o ponto.

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

Esse comando permitirá que eu descriptografe um arquivo, edite-o e criptografe-o novamente sem o arquivo já existente no disco em formato não criptografado. O problema é encontrar um editor que possa salvar o conteúdo editado no stdout. O único editor que encontrei é ed que é muito hostil de usar. Eu preferiria muito mais um editor visual. Existe um editor que pode fazer isso ou, como alternativa, pode descriptografar e criptografar arquivos dentro do editor?

    
por Jonathan 24.04.2016 / 16:29

1 resposta

3

Você pode usar vipe para editar os pipelines:

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.

O truque no uso de editores gráficos é garantir que ele não bifurque e inicie um processo desanexado. Por exemplo, para usar o GVim:

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

Espero que você precise usar a opção -s com gedit :

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

Então:

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

Alternativamente, você pode tentar este plugin com o Vim.

    
por muru 24.04.2016 / 16:39