Como posso exibir o conteúdo de um arquivo de texto na linha de comando?

Eu gostaria de exibir o conteúdo de um arquivo de texto na linha de comando. O arquivo contém apenas 5-6 caracteres. Existe uma maneira fácil de fazer isso?

Resposta

Usando cat

Como seu arquivo é curto, você pode usar cat .

cat filename 

Usando less

Se você tiver que ver o conteúdo de um arquivo mais longo, você pode usar um pager como less .

less filename 

Você pode fazer com que less se comporte como cat quando invocado em arquivos pequenos e se comporte normalmente de outra forma passando -F e -X sinalizadores.

less -FX filename 

Tenho um alias para less -FX. Você pode criar um assim:

alias aliasname="less -FX" 

Se você adicionar o alias à sua configuração de shell , você pode usá-lo para sempre.

Usando od

Se o seu arquivo contém caracteres estranhos ou não imprimíveis, você pode usar od para examinar os caracteres. Por exemplo,

$ cat file (ÐZ4 ?o=÷jï $ od -c test 0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o 0000020 = 367 \n 0000023 

Comentários

  • +1, também sed -n l file pode ser útil.
  • less tem alguma vantagem clara sobre outros programas de pager como pg , ou simplesmente se resume à preferência pessoal?
  • @SamWeinberg: less tem mais recursos do que pg. Dê uma olhada em less(1) e pg(1) páginas de manual. Existem outros pagers também. Dê uma olhada em unix.stackexchange.com/questions/81129/… . less é provavelmente o pager mais usado, mas o que você usa se resume à preferência pessoal.
  • don ‘ esqueça more e most!

Resposta

Mesmo que todos usem cat filename para imprimir o texto de um arquivo na saída padrão, a primeira finalidade é con cat enating. Da página de manual do cat:

cat – concatenar arquivos e imprimir na saída padrão

Agora, cat é adequado para imprimir arquivos, mas existem alternativas:

 echo "$(<filename)" or printf "%s" "$(<filename)" 

O retorno ( ) o valor de uma expressão, neste caso o conteúdo de nome do arquivo que é expandido por $ para echo ou printf.

Atualização:

< filename 

Isso faz exatamente o que você deseja e é fácil de lembrar.

Aqui está um exemplo que permite selecionar um arquivo em um menu e depois imprimi-lo.

#!/bin/bash select fname in *; do # Don"t forget the "" around the second part, else newlines won"t be printed printf "%s" "$(<$fname)" break done 

Para mais lendo:
BashPitfalls – arquivo cat | sed s / foo / bar /> arquivo
Referência Bash – Redirecionando

Comentários

  • Sua atualização: ” < filename é exatamente o que quando você quiser, … ” é enganoso. No geral, embora esta seja uma discussão interessante sobre alternativas, acho que cat é mais simples.
  • Bare < filename não exibe o conteúdo do arquivo, mas cat filename o faz.
  • Você também pode usar tee < filename.
  • +1 para o echo "$(<filename)" bashismo. Não é o suficiente aqui.
  • Essa ‘ é uma ótima ideia para usar o Comando interno do Linux com echo "$(<filename)". Obrigado …

Resposta

As ferramentas para lidar com arquivos de texto no Unix são comandos básicos do dia a dia:

Em Unix e Linux para imprimir todo o conteúdo do arquivo

cat filename.txt 

ou

more filename.txt 

ou

less filename.txt 

Para as últimas linhas

tail filename.txt 

Para primeiras linhas

head filename.txt 

Resposta

Você pode usar o seguinte comando para exibir o conteúdo de um arquivo de texto.

 cat filename 

Comentários

  • Para obter mais informações sobre cat, execute man cat.

Resposta

Uma opção é usar more

, por exemplomore file.txt

No entanto, não possui todos os recursos adicionados por less.
Um exemplo simples é que você não pode “rolar para cima na saída. Geralmente foi superado por menos – que foi nomeado de brincadeira porque

menos é mais

Comentários

  • Bela explicação sobre por que menos era o nome

Resposta

Eu sempre uso $ less "your file here", pois é muito simples, fornece um grep comando e oferece uma interface fácil de usar que você pode rolar com as teclas de seta.

(Também está incluído em quase todos os sistemas * nix)

Comentários

  • less é a versão exagerada de more (compare man less com man more) e, para mim, tem dois recursos irritantes: 1) ele muda para o buffer de tela alternativo, quando less termina, o arquivo que você estava visualizando desaparece 2) no EOF, você deve digitar explicitamente q (eu sei, existe ‘ s uma opção para isso). Portanto, uma das minhas primeiras ações em um novo ambiente é definir export PAGER=/bin/more em meu perfil e usar more o tempo todo.
  • @ ott–: 1) Experimente o sinalizador -X. 2) Experimente o sinalizador -E. less tem um modo de emulação more. Você pode ativá-lo definindo a variável de ambiente LESS_IS_MORE. Você pode rolar para cima no more modo de emulação.
  • Veja também: unix.stackexchange.com/questions / 81129 / …
  • Embora, em geral, eu concorde que less é excessivamente complicado. Sua capacidade de executar comandos externos é um exemplo perfeito de sua complexidade excessiva.
  • @EvanTeitelman I ‘ Eu sempre achei a funcionalidade grep extremamente útil, eu mesmo, @ott – Acho que por causa disso ‘ s emulação de more e ‘ s muitos recursos adicionais, faz o trabalho muito bem.

Resposta

Se for um arquivo grande, você deseja pesquisar alguma parte específica, você pode usar

 cat filename | grep text_to_search -ni 

Além disso, você pode usar um editor Vim mais interativo (ou editor vi se você não tiver o Vim):

 vim filename Or vi filename

O Vim / vi é um ótimo editor, também pode ser usado como um leitor no “Modo Normal” ou usando a opção -R, tem muitos recursos que irá ajudá-lo a navegar pelo arquivo.

Comentários

  • Mais curto para vim -R é view. Mas tenha em mente que ele não gosta de redirecionamentos, conforme discutido em xargs e vi – “A entrada não é de um terminal” .
  • obrigado @manatwork para o alerta! Recentemente comecei a usar o Vim e gosto dele por causa de seus vários recursos. Em relação aos redirecionamentos, esqueci-me disso, obrigado pelo lembrete. No momento, estou trabalhando em uma VM remota, onde uso ssh sem interface GUI, portanto, o Vim é de grande utilidade, quando qualquer outro editor de GUI não pode funcionar, que ‘ s por que enfatizei o Vim aqui.

Resposta

Use o comando cat para exibir o conteúdo do nome do arquivo. cat filename

Use o comando vim para editar o arquivo. nome do arquivo vim

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *