Existe uma maneira de editar um arquivo se não houver vi, vim, joe, mcedit? Em outras palavras, existe uma maneira de editar um arquivo usando apenas os comandos do shell?
linux
shell
text-editors
editing
text-editing
Eduard Florinescu
fonte
fonte
cat file
, sigacat >file
e organize as peças com recortar + colar e / ou digitar, finalize comctrl-d
.echo <<EOF > new.file [paste here] EOF
. Edite o conteúdo do arquivo no PC host.Respostas:
Nesse caso, eu tentaria transferir arquivos e editá-los em outro computador e depois transferi-los de volta. Se você possui ssh, deve ter scp (espero), para poder enviar e receber arquivos. Caso contrário, você também pode procurar por ftp para transferir arquivos para dentro e para fora.
Caso contrário, acho que sua melhor opção é tentar usar o redirecionamento cat, grep, sed, echo e E / S (especialmente anexado a
>>
). E muitos arquivos temporários.Embora se você tiver acesso ao perl (ou algo semelhante), poderá executá-lo sem argumentos e permitirá inserir uma fonte de script a partir da entrada padrão. Depois de pressionar ctrl + d, ele pode executar o script. Você pode usar esse método para criar um arquivo. Seria mais poderoso do que invadir algo na linha de comando, como mencionei antes.
fonte
Eu imagino que você possa fazer o que precisa
grep
eperl
- procure a linha com a qual desejagrep
, edite essa linhaperl
(perl
pode atuar como um grande substitutosed
) e depois confirme que não fez mais alterações do que pretendiadiff filename filename.new
. Nesse caso, torne as alterações permanentes -mv filename.new filename
fonte
Supondo que você esteja fazendo o SSH no seu roteador, você também pode usar vários utilitários para transferir o arquivo de volta para o seu computador / roteador. Você pode baixar uma cópia no seu PC, modificá-la e enviá-la novamente ao roteador via SFTP (consulte Putty ou WinSCP se você for um usuário do Windows).
Se você estiver usando um firmware personalizado no roteador / gateway, no entanto, pode estar com sorte. Existem vários pacotes Optware que contêm editores de texto simples (e pequenos). Dependendo das suas necessidades, você pode obter o
nano
pacote ou apenas ir para obusybox
que contémvi
.fonte
Uma maneira seria produzir o resultado de um eco.
Isso criará um arquivo chamado bar.yxy com o texto que contém "foo".
fonte
Você apagou / bin ou algo assim? Caso contrário, talvez você possa hackear algo junto com os utilitários de texto no GNU Coreutils, que devem ser padrão em um sistema Linux.
fonte