ti-enxame.com

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?

152
Sam Weinberg

Usando cat

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

cat filename

Usando less

Se você precisar visualizar o conteúdo de um arquivo mais longo, poderá 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 caso contrário, passando o -F e -X bandeiras.

less -FX filename

Eu tenho um alias para less -FX. Você pode fazer um você mesmo assim:

alias aliasname='less -FX'

Se você adicionar o alias ao seu Configuração do shell , poderá usá-lo para sempre.

Usando od

Se o seu arquivo contiver caracteres estranhos ou não imprimíveis, você poderá 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
220
user26112

Mesmo que todo mundo use cat filename para imprimir o texto de um arquivo na saída padrão, a primeira finalidade é con cat enating. Na página de manual do gato:

cat - concatena arquivos e imprime na saída padrão

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

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

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

Atualizar:

< 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 leitura adicional:
BashPitfalls - arquivo gato | sed s/foo/bar /> arquivo
Referência do bash - redirecionando

31
crunsher

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

 nome do arquivo do gato 
9
forvaidya

As ferramentas para lidar com arquivos de texto no unix são comandos básicos do cotidiano:

No unix e linux para imprimir todo o conteúdo do arquivo

cat filename.txt

ou

more filename.txt

ou

less filename.txt

Nas últimas linhas

tail filename.txt

Para as primeiras linhas

head filename.txt
9
Abhishek

Uma opção é usar more

por exemplo. more file.txt

No entanto, ele não possui todos os recursos adicionados por less.
Um exemplo simples é que você não pode rolar de volta na saída. Geralmente foi superado por menos - que foi nomeado em tom de brincadeira porque

menos é mais

4
Michael Durrant

Eu sempre uso $ less "your file here", como é muito simples, fornece um comando interativo grep integrado 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)

3
SG60

Se for um arquivo grande, e você quiser procurar uma parte específica, poderá usar

 cat filename | grep text_to_search -ni 

Além disso, você pode usar um editor Vim mais interativo (ou um 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, possui muitos recursos que o ajudarão a navegar pelo arquivo.

2
Don't You Worry Child

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

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

1
Edward Shen