Como posso editar um arquivo se não houver vi, vim, joe, etc?

25

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?

    
por Eduard Florinescu 20.08.2012 / 21:22

5 respostas

15

Nesse caso, eu tentaria transferir arquivos e editá-los em outro computador e depois transferi-los de volta. Se você tem ssh, você deve ter scp (espero), então você deve conseguir inserir e remover arquivos. Se não, você também pode procurar por ftp para transferir arquivos para dentro e para fora.

Se não, então eu acho que sua melhor opção é tentar usar o redirecionamento de cat, grep, sed, echo e I / O (especialmente acrescentar com >> ). E muitos arquivos temporários.

No entanto, se você tiver acesso ao perl (ou algo semelhante), poderá executá-lo sem argumentos e permitirá que você insira uma fonte de script a partir da entrada padrão. Depois de pressionar ctrl + d, ele poderá executar o script. Você poderia usar esse método para criar um arquivo. Seria mais poderoso do que hackear algo na linha de comando como mencionei antes.

    
por 20.08.2012 / 21:36
4

Eu imagino que você poderia fazer o que você precisa com grep e perl - procure a linha desejada com grep , edite essa linha com perl ( perl pode agir como um grande substituto para sed ) e confirme que você não fez mais alterações do que pretendia fazendo diff filename filename.new . Em caso afirmativo, faça as alterações permanentes - mv filename.new filename

    
por 20.08.2012 / 21:50
3

Supondo que você esteja usando 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 fazer o download de uma cópia no seu PC, modificá-lo e, em seguida, enviar o SSH de volta para o roteador via SFTP (consulte Putty ou WinSCP se você for usuário do Windows).

Se você estiver usando um firmware personalizado no roteador / gateway, no entanto, você pode estar com sorte. Existem vários pacotes Optware contendo editores de texto simples (e pequenos). Dependendo de suas necessidades, você pode obter o pacote nano ou apenas busybox , que contém vi .

    
por 20.08.2012 / 21:36
2

Uma maneira seria produzir o resultado de um eco.

echo "foo" > bar.txt

Isto fará um arquivo intitulado bar.xyxy com o texto que contém, "foo".

    
por 24.07.2016 / 00:12
1

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 deve ser padrão em um sistema Linux.

    
por 20.08.2012 / 21:32