AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 21555
Accepted
NES
NES
Asked: 2011-01-15 11:00:59 +0800 CST2011-01-15 11:00:59 +0800 CST 2011-01-15 11:00:59 +0800 CST

Comando para anexar linha a um arquivo de texto sem abrir um editor

  • 772

Supondo que eu tenha uma linha que eu queira adicionar a um arquivo sem abrir um editor.

Como eu poderia anexar esta linha

alias list='ls -cl --group-directories-first'

para este arquivo

config.fish
command-line
  • 3 3 respostas
  • 488420 Views

3 respostas

  • Voted
  1. Best Answer
    Stefano Palazzo
    2011-01-15T11:09:42+08:002011-01-15T11:09:42+08:00

    Você pode anexar uma linha de texto a um arquivo usando o >>operador:

    echo "hello world" >> my_file.txt
    

    ou no seu caso

    echo "alias list='ls -cl --group-directories-first'" >> config.fish
    

    Por favor, tome nota dos diferentes tipos de cotações .

    • 298
  2. Sergiy Kolodyazhnyy
    2018-06-18T13:01:45+08:002018-06-18T13:01:45+08:00

    Existem muitos métodos de anexar ao arquivo sem abrir editores de texto, principalmente por meio de vários utilitários de processamento de texto disponíveis no Ubuntu. Em geral, qualquer coisa que nos permita executar open()syscall com O_APPENDsinalizador adicionado, pode ser usado para anexar a um arquivo.

    • A versão GNU do ddutilitário pode anexar dados ao arquivo comconv=notrunc oflag=append

      printf "\nalias list='ls -cl --group-directories-first'\n" | dd conv=notrunc oflag=append bs=1 of=config.fish
      

      Portátil, poderíamos usar algo assim no lado direito do pipeline:

      dd conv=notrunc seek=$(wc -c < testFile.txt) bs=1 of=testFile.txt
      

      Observe o uso de bs=1, que é para evitar leituras curtas do pipeline

    • O teecomando pode ser usado quando você precisa anexar ao arquivo e enviá-lo para stdout ou para o próximo comando no pipeline

      tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
      
    • awktem o operador append >>que também é portátil e definido pelas especificações POSIX

      awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish"  }'
      
    • Podemos combinar sedo sinalizador 's $para corresponder à última linha apara anexar e -ieditar no local.

      sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish
      
    • Poderíamos até implementar algo como ddem Python 3:

        #!/usr/bin/env python3
        # read bytes from stdin, append to specified file
        import sys
    
        with open(sys.argv[1],'ab') as f:
             f.write(sys.stdin.buffer.read())
    

    Veja também:

    • Qual é a diferença entre <<, <<< e << no bash?
    • Qual é a diferença entre &> e 2>&1
    • Como redirecionar stderr para um arquivo
    • Qual é a diferença entre “cat < filename” e “cat filename”?
    • Qual é a diferença entre "Redirection" e "Pipe"?
    • 6
  3. wjandrea
    2018-06-18T15:05:46+08:002018-06-18T15:05:46+08:00

    Adicionando à resposta de Stefano , você também pode usar cat:

    • Usando um heredoc:

      $ cat >> config.fish <<'EOF'
      > alias list='ls -cl --group-directories-first'
      > EOF
      

      <<'EOF'significa "tomar o seguinte como entrada, até chegar a uma linha que é apenas EOF". As aspas significam levar a entrada literalmente.

    • Ou inserindo a linha em stdin:

      $ cat >> config.fish
      

      Em seguida, cole ou digite a linha, pressione Enterpara ir para uma nova linha e pressione Ctrl+D para marcar o fim.

    • 6

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Que comando preciso para descompactar/extrair um arquivo .tar.gz?

    • 8 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Marko Smith

    Como posso adicionar um usuário como um novo sudoer usando a linha de comando?

    • 7 respostas
  • Marko Smith

    Alterar permissões e propriedade da pasta

    • 9 respostas
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    EmmyS Que comando preciso para descompactar/extrair um arquivo .tar.gz? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve