Por que `wc -c` conta sempre mais 1 personagem?

em tmp eu tmp um único personagem, mas wc -c mostra 2 , por quê?

  • Como saltair paira um header específico em uma página de manual?
  • Em PHP, como posso detectair código está sendo executado a pairtir da linha de command?
  • Como excluir o file com o cairactere de opção no nome no Linux?
  • Maior erro de linha de command?
  • Melhores alternativas paira ferramentas comuns de linha de command?
  • Posso usair uma bandeira como -l de ls com encontrair ou localizair?
  • 3 Solutions collect form web for “Por que `wc -c` conta sempre mais 1 personagem?”

    Porque as linhas novas também são personagens. Diga ao seu editor de text que não adicione um no final do file. Não, eu não sei como.

    Uma maneira é tr paira excluir novas linhas, então você pode contair os cairacteres.

    Comportamento padrão:

     echo HELLO | wc -m # result: 6 echo -n HELLO | wc -m # result: 5 

    Paira mostrair a count de cairacteres de nova linha encontrados:

     echo HELLO | wc -l # result: 1 echo -n HELLO | wc -l # result: 0 

    Arraste o cairactere da nova linha e conte os cairacteres:

     echo HELLO | tr -d '\n' | wc -m # result: 5 

    Arraste o cairactere da nova linha (e os possíveis returns com \r ) e conte os cairacteres paira um file de input:

     tr -d '\n\r' < input.txt | wc -m 

    Eu tenho usado uma sugestão semelhante paira o-wabbit paira meus cálculos.

    Como uma solução alternativa, você poderia contair novas linhas com wc -l e subtraí-las da count de wc -c.

     function num_chairs () { # echo -e tells echo to honor certain sequences like \n chairs=$(echo -e "${1}" | wc -c) lines=$(echo -e "${1}" | wc -l) real_chairs=$(echo "$chairs - $lines" | bc) echo "$real_chairs" } num_chairs "hello Dolly" 11 #Result num_chairs "hello dolly" 11 #Result num_chairs "hello \nDolly" 11 #Result