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?
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?
Respostas:
cat
Como seu arquivo é curto, você pode usá-lo
cat
.
cat filename
less
Se você precisar visualizar o conteúdo de um arquivo mais longo, poderá usar um pager como
less
.
less filename
Você pode se less
comportar como cat
quando chamado em arquivos pequenos e se comportar normalmente caso contrário, passando os sinalizadores -F
e -X
.
less -FX filename
Eu tenho um apelido para less -FX
. Você pode fazer um você mesmo assim:
alias aliasname='less -FX'
Se você adicionar o alias à sua configuração de shell , poderá usá-lo para sempre.
od
Se o seu arquivo contiver caracteres estranhos ou não imprimíveis, você poderá usá-lo
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
less
alguma vantagem clara sobre outros programas de pager como pg
, ou apenas se resume à preferência pessoal?
less
tem mais recursos do que pg
. Dê uma olhada nas páginas less(1)
e pg(1)
man. 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 às preferências pessoais.
more
e most
!
Mesmo que todo mundo usa cat filename
para imprimir um texto arquivos para o primeiro propósito de saída padrão é con gato 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 ( )
retorno do valor de uma expressão; nesse caso, o conteúdo do nome do arquivo que é expandido por $
for 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 de gato | sed s / foo / bar /> file
Referência Bash - Redirecionando
< filename
é exatamente o que você deseja, ..." é enganosa. No geral, embora seja uma discussão interessante sobre alternativas, acho que cat
é mais simples.
< filename
não exibe o conteúdo do arquivo, mas exibe cat filename
.
tee < filename
também.
echo "$(<filename)"
basismo. Não basta disso aqui.
"$(<filename)"
. Obrigado ...
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
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
Eu sempre uso $ less "your file here"
, pois é muito simples, fornece um grep
comando interativo incorporado e fornece 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)
less
é a versão exagerada de more
(compare man less
com man more
) e, para mim, possui dois recursos irritantes: 1) alterna para o buffer de tela alternativo; quando menos termina, o arquivo que você estava visualizando desaparece 2) no EOF, você deve digitar explicitamente q
(Eu sei, há uma opção para isso). Portanto, uma das minhas primeiras ações em um novo ambiente é definir export PAGER=/bin/more
meu perfil e usá-lo more
o tempo todo.
-X
bandeira. 2) Experimente a -E
bandeira. less
tem um more
modo de emulação. Você pode habilitá-lo definindo a LESS_IS_MORE
variável ambiental. Você pode rolar para cima no more
modo de emulação.
less
seja excessivamente complicado. Sua capacidade de executar comandos externos é um exemplo perfeito de sua complexidade excessiva.
more
e de muitos recursos adicionais, ele faz o trabalho muito bem.
Se for um arquivo grande, e você desejar pesquisar alguma 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.
vim -R
é view
. Mas lembre-se de que ele não gosta de redirecionamentos, conforme discutido em xargs e vi - “A entrada não é de um terminal” .
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
sed -n l file
pode ser útil.