Postagem em destaque

Criando bot do Telegram em Shell script com ShellBot

Concatenar arquivos e imprimir na saída padrão

Sobre
 
cat significa "concatenar". Ele lê os dados do arquivo e lista o seu conteúdo. É a forma mais simples de exibir o conteúdo de um arquivo em linha de comando.



Descrição 

O comando é muito utilizando em ambientes Linux. Com ele podemos:


  • Exibir o conteúdo de arquivos de texto.
  • Copiar o conteúdo do arquivo para um novo documento.
  • Anexar o conteúdo de um arquivo de texto ao final de outro.

Para mais informações consulte o manual: cat(1)


Uso

cat [OPÇÃO]... [ARQUIVO]...
Se ARQUIVO não for especificado ou for -, lê a entrada padrão.

1. Imprimindo o conteúdo de um arquivo.

$ cat arquivo
Essa é a forma mais simples de listar o conteúdo de uma arquivo. Sua utilização não requer argumentos, basta simplesmente informar o nome do arquivo. Dependendo do tamanho do arquivo, talvez a saída padrão não comporte todo texto; sendo necessário o uso dos comandos pg, less, more e etc.

2. Listando o conteúdo de dois arquivos concatenando a saída.

Considere o conteúdo dos arquivos:

arq1.txt arq2.txt

laranja
limão
abacate
abacaxi

macarrão
arroz
feijão
carne
Listando o conteúdo dos arquivos.
$ cat arq1.txt arq2.txt
laranja
limão
abacate
abacaxi
macarrão
arroz
feijão
carne
Observe que ambos os conteúdos foram listados na saída padrão conforme a sua posição na sintaxe do comando. 

3. Copiando o conteúdo para um novo arquivo.

Geralmente utilizamos o comando cp para realizar operações de copias entre arquivos. Porém podemos usar o cat para listar o conteúdo e redirecionar a saída padrão para o novo arquivo. Para isso devemos utilizar o redirecionador '>'.

$ cat arq1.txt > novo_arquivo.txt
Lista o conteúdo redirecionando a saída padrão para o novo arquivo. O redirecionador '>' cria o arquivo se ele não existir, caso contrário sobrescreve o conteúdo já existente.

Listando conteúdo do arquivo.
$ cat novo_arquivo.txt
laranja
limão
abacate
abacaxi


4. Anexando o conteúdo em um arquivo.

Usando o redirecionador '>>' podemos anexar o conteúdo de um arquivo em outro sem sobrescrever o conteúdo já existente.

Anexando arquivo 'arq2.txt' em 'novo_arquivo.txt'.
$ cat arq2.txt >> novo_arquivo.txt

Listando 'novo_arquivo.txt'.
$ cat novo_arquivo.txt
laranja
limão
abacate
abacaxi

macarrão
arroz
feijão
carne
O conteúdo do 'arq2.txt' foi anexado ao final do arquivo 'novo_arquivo.txt', mantendo os dados já existentes.

5. Capturando a entrada padrão.

Além de listar o conteúdo do arquivo, também podemos capturar a entrada padrão utilizando o caractere '-' e concatenar com os dados na saída padrão.

Concatenando a palavra 'cerveja' no inicio.
$ echo 'cerveja' | cat - novo_arquivo.txt
cerveja
laranja
limão
abacate
abacaxi

macarrão
arroz
feijão
carne
O '-' captura os dados da entrada padrão recebidos pelo (|) PIPE e concatena com a saída dos dados do arquivo listado. A posição do '-'  na sintaxe do comando determina a linha onde a expressão será anexada.

Concatenando a palavra 'cerveja' no final.
$ echo 'cerveja' | cat novo_arquivo.txt -
laranja
limão
abacate
abacaxi

macarrão
arroz
feijão
carne
cerveja

6. Enumerando as linhas do arquivo.

Enumerando.
$ cat -n arq1.txt
     1    laranja
     2    limão
     3    abacate
     4    abacaxi
A frente de cada expressão é inserida o número da linha correspondente.

7. Enumerando as linhas do arquivo, exceto as linhas em branco.

Se utilizarmos o parâmetro '-n' em um arquivo que contém linhas em branco, elas também seriam enumeradas.

Considere o seguinte arquivo.
$ cat arq1.txt
laranja

limão
abacate


abacaxi

Enumerando as linhas utilizando o parâmetro '-n'.
$ cat -n arq1.txt
     1    laranja
     2   
     3    limão
     4    abacate
     5   
     6   
     7    abacaxi
Apesar das linhas 2,5 e 6 estarem em branco, elas foram enumeradas. Isso não seria útil se estivéssemos precisando do número total de linhas com dados.

8. Enumerando exceto as linhas em branco.
$ cat -b arq1.txt
     1    laranja

     2    limão
     3    abacate


     4    abacaxi
Apesar da linhas em branco terem sido listadas na saída, elas foram ignoradas pelo comando cat.

9. Suprimindo as linhas em branco do arquivo.

Além de ignorar a enumeração de linhas em branco, também podemos suprimi-las; evitando que linhas em branco consecutivas sejam listadas na saída padrão.

Suprimindo linhas em branco.
$ cat -s arq1.txt
laranja

limão
abacate

abacaxi
Note que havia duas linhas em branco consecutivas após a expressão 'abacate' e que foram reduzidas a uma única linha. Não importa a quantidade de linhas consecutivas, serão sempre suprimidas.

10. Exibindo o caractere '$' (final de linha).

Em um arquivo de texto existem caracteres não imprimíveis responsáveis pela formatação do texto e que determina a forma como vemos o seu conteúdo. Um deles é o caractere '$' que indica quando uma linha chega ao fim.

Exibindo o caractere '$'.
$ cat -E arq1.txt
laranja$
$
limão$
abacate$
$
$

abacaxi$

Veja também


Além de todos os recursos citados anteriormente,  o cat permite criar modelos de arquivos de configuração a nível execução. Podendo ser inserido dentro do corpo do próprio script.

Leia: Criando arquivo de configuração

Comentários

Contato

Nome

E-mail *

Mensagem *