Pesquisa de site

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.