Como usar o 'itextESC' ao usar o ex como editor de texto na linha de comando?

0

Eu gosto de usar o editor tradicional ex para operações simples de linha de comando, para reorganizar o texto nos arquivos. Por exemplo, para um simples movimento de linhas em um arquivo eu usaria algo como

foo
bar
zoo
dude

para mover o texto dude após foo gostaria de fazer

printf '%s\n' '/dude' 'd' '/foo' '-' 'put' 'wq' | ex file

, o que significa mover para o padrão dude , colocar a linha no buffer e colá-la depois de foo e wq para fechar o arquivo.

Isso funciona bem até agora, mas eu quero inserir meu texto personalizado no arquivo, dado por exemplo

 example
//commented
 abc
 def

Eu preciso adicionar outro texto acima de //commented se o padrão abc corresponder a um arquivo se abc estiver presente e acima dele se uma linha que começa com // existir adicione outra linha //new text , por isso deve se parecer com

 example
//new text
//commented
 abc
 def

Eu tentei fazer o seguinte, usando itextESC para inserir texto, mas não está funcionando.

printf '%s\n' '/abc' '-' '/\/\/' 'itextESC' 'wq' | ex file

Gostaria de fazer isso funcionar em ed ou ex para explorar mais sobre essa ferramenta. Gostaria de receber insights se ed/ex puder ser usado para tarefas triviais como essa.

    
por Inian 08.02.2018 / 09:58

1 resposta

2

Não espere que os comandos visuais funcionem no modo ex . Use os comandos ex reais para inserir texto, a [ppend] e i [nsert].

printf '%s\n' '/abc' '-' '/\/\/' 'i' 'text' '.' 'wq' | ex file

Leitura adicional

por 08.02.2018 / 15:24