Este artigo é parte da nossa série Dicas e Truques do Linux, neste artigo vamos cobrir alguns usos básicos do comando cat (comando mais frequentemente usado no Linux) e tac (inverso do comando cat – exibir arquivos em ordem reversa) com alguns exemplos práticos.
Leia também: 13 Exemplos Úteis do Comando ‘cat’ no Linux
Uso Básico do Comando Cat no Linux
O comando Cat, acrônimo para Concatenar, é um dos comandos mais utilizados em sistemas *nix. O uso mais básico do comando é ler arquivos e exibi-los no stdout, ou seja, exibir o conteúdo dos arquivos no seu terminal.
# cat file.txt

Outro uso do comando cat é ler ou combinar múltiplos arquivos juntos 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) múltiplos arquivos em um único arquivo usando o operador de redirecionamento do Linux “>”
.
# cat file1.txt file2.txt file3.txt > file-all.txt

Usando o redirecionador de apêndice, você pode adicionar o conteúdo de um novo arquivo ao final 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 de um arquivo para um novo arquivo. O novo arquivo pode ser renomeado arbitrariamente. Por exemplo, copie o arquivo da localização atual para o diretório /tmp/
.
# cat file1.txt > /tmp/file1.txt

Copie o arquivo da localização atual para o diretório /tmp/
e altere o nome.
# cat file1.txt > /tmp/newfile.cfg

A less usage of the cat command is to create a new file with the below syntax. When finished editing the file hit CTRL+D
to save and exit the new file.
# cat > new_file.txt

Para numerar todas as linhas de saída de um arquivo, incluindo as 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 aprender mais sobre o comando cat do Linux? então leia nosso artigo sobre 13 Exemplos Úteis do Comando ‘cat’ no Linux.
Aprenda Como Usar o Comando Tac no Linux
Por outro lado, um comando menos conhecido e menos utilizado em sistemas *nix é o comando tac
. Tac é praticamente a versão reversa do comando cat
(também soletrado ao contrário) que imprime cada linha de um arquivo começando pela última linha e terminando na primeira linha para a saída padrão da máquina.
# 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"

Em seguida, o uso mais importante do comando tac é que ele pode fornecer uma grande ajuda para depurar arquivos de log, revertendo a ordem cronológica dos conteúdos do log.
$ tac /var/log/auth.log Or to display the last lines $ tail /var/log/auth.log | tac
Saída de Exemplo
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 ...
Da mesma forma que o comando cat
, o comando tac
faz um excelente trabalho em manipular arquivos de texto, mas deve ser evitado em outros tipos de arquivos, especialmente arquivos binários ou em arquivos nos quais a primeira linha denota o programa que o executará.
Source:
https://www.tecmint.com/learn-linux-cat-command-and-tac-command/