Como usar comandos ‘cat’ e ‘tac’ com exemplos no Linux
Este artigo faz parte de nossa série de truques e dicas do Linux. Neste artigo, abordaremos alguns usos básicos do comando cat (comando usado com mais frequência no Linux) e tac ( comando reverso do gato – imprime arquivos na ordem inversa) com alguns exemplos práticos.
Leia também: 13 exemplos úteis de comando ‘cat’ no Linux
Uso básico do comando Cat no Linux
O comando Cat, sigla para Concatenate, é um dos comandos mais usados em sistemas *nix. O uso mais básico do comando é ler arquivos e exibi-los em stdout, ou seja, exibir o conteúdo dos arquivos em seu terminal.
cat file.txt
Outro uso do comando cat é ler ou combinar vários arquivos e enviar a saída para um monitor conforme ilustrado nos exemplos abaixo.
cat file1.txt file2.txt file3.txt
O comando também pode ser usado para concatenar (juntar) vários arquivos em um único arquivo usando o operador de redirecionamento “> ”
Linux.
cat file1.txt file2.txt file3.txt > file-all.txt
Usando o redirecionador de acréscimo, você pode adicionar o conteúdo de um novo arquivo na parte inferior do file-all.txt
com a seguinte sintaxe.
cat file4.txt >> file-all.txt
O comando cat pode ser usado para copiar o conteúdo do arquivo para um novo arquivo. O novo arquivo pode ser renomeado arbitrariamente. Por exemplo, copie o arquivo do local atual para o diretório /tmp/
.
cat file1.txt > /tmp/file1.txt
Copie o arquivo do local atual para o diretório /tmp/
e altere seu nome.
cat file1.txt > /tmp/newfile.cfg
Um uso menor do comando cat é criar um novo arquivo com a sintaxe abaixo. Ao terminar de editar o arquivo, pressione CTRL+D
para salvar e sair do novo arquivo.
cat > new_file.txt
Para numerar todas as linhas de saída de um arquivo, incluindo linhas vazias, use a opção -n
.
cat -n file-all.txt
Para exibir apenas o número de cada linha não vazia, use a opção -b
.
cat -b file-all.txt
Quer saber mais sobre o comando cat do Linux? em seguida, leia nosso artigo sobre 13 exemplos úteis de comandos ‘cat’ no Linux.
Aprenda como usar o comando Tac no Linux
Por outro lado, um comando menos conhecido e menos usado em sistemas *nix é o comando tac
. Tac é praticamente a versão reversa do comando cat
(também escrito ao contrário) que imprime cada linha de um arquivo começando na linha inferior e terminando na linha superior de acordo com o padrão da sua máquina saída.
tac file-all.txt
Uma das opções mais importantes do comando é representada pela opção -s
, que separa o conteúdo do arquivo com base em uma string ou palavra-chave do arquivo.
tac file-all.txt --separator "two"
A seguir, o uso mais importante do comando tac é que ele pode fornecer uma grande ajuda para depurar arquivos de log, invertendo a ordem cronológica do conteúdo do log.
tac /var/log/auth.log
Or to display the last lines
tail /var/log/auth.log | tac
Saída de amostra
tecmint@tecmint ~ $ tac /var/log/auth.log
pr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr 6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...
Assim como o comando cat
, tac
faz um excelente trabalho na manipulação de arquivos de texto, mas deve ser evitado em outros tipos de arquivos, especialmente arquivos binários ou em arquivos onde a primeira linha denota o programa que irá executá-lo.