Gosto de usar o ex
editor tradicional para operações simples de linha de comando, para reorganizar o texto nos arquivos. Por exemplo, para uma simples movimentação de linhas em um arquivo, eu usaria algo como
foo
bar
zoo
dude
para mover o texto dude
depois foo
eu apenas faria
printf '%s\n' '/dude' 'd' '/foo' '-' 'put' 'wq' | ex file
o que significa mover para pattern dude
, colocar a linha no buffer e colá-la depois foo
e wq
fechar o arquivo.
Isso funciona bem até agora, mas quero inserir meu texto personalizado no arquivo, fornecido por exemplo
example
//commented
abc
def
Eu preciso adicionar outro texto acima //commented
se o padrão abc
corresponder, ou seja, em um arquivo, se abc
estiver presente e acima dele, se existir uma linha começando com //
, adicione outra linha //new text
, então deve ficar assim
example
//new text
//commented
abc
def
Tentei fazer abaixo, usando itextESC
para inserir texto, mas não está funcionando.
printf '%s\n' '/abc' '-' '/\/\/' 'itextESC' 'wq' | ex file
Eu gostaria de fazer isso funcionar ed
ou ex
explorar mais sobre essa ferramenta. Gostaria de receber informações se ed/ex
puder ser usado para tarefas triviais como esta.
Não espere que os comandos visuais funcionem no
ex
modo. Use osex
comandos reais para inserir texto,a
[ppend] ei
[nsert].Leitura adicional