terça-feira, 16 de abril de 2013

10 exemplos do comando Cat para gerenciamento de arquivos no Linux

Print Friendly and PDF

1. Exibir o conteúdo de um arquivo

Quando você passa o arquivo como um argumento para o comando cat, o conteúdo deste arquivo é exibido na tela.
$ cat program.pl
#!/usr/bin/perl

if( 2 ge 3) {
print "maior\n";
}else {
print "menor\n";
}


Você pode visualizar o conteúdo de mais de um arquivo.
$ cat program.pl program2.pl
#!/usr/bin/perl

if( 2 ge 3) {
print "maior\n";
}else {
print "menor\n";
}
#!/usr/bin/perl

@arr = qw(1,2,3);
$ref = \@arr;
print ref $ref;

2. Criar um novo arquivo

Usando o comando cat, as linhas recebidas de stdin (entrada padrão) podem ser redirecionadas para um novo arquivo, usando os símbolos de redireção.
Quando você digita simplesmente o comando cat sem qualquer argumento, cat recebe o conteúdo de stdin e o exibe em stdout (saída padrão). Assim, quando você digita uma linha, uma única vez, ao pressionar "enter", esta mesma linha é impressa na tela na linha seguinte.
$ cat
comando cat para operacoes com arquivos.
comando cat para operacoes com arquivos.
comando cp para copia de arquivos ou diretorios.
comando cp para copia de arquivos ou diretorios.

Você pode redirecionar o conteúdo de stdout para um novo arquivo.
$ cat >cmd_usage.txt
comando cat para operacoes com arquivos.
comando cp para copia de arquivos ou diretorios.

$ cat cmd_usage.txt
comando cat para operacoes com arquivos.
comando cp para copia de arquivos ou diretorios.

É possível anexar um conteúdo a um arquivo, usando o símbolo de redireção >>.
$ cat >>cmd_usage.txt
comando ls para listar o conteudo de arquivos e diretorios.

$ cat cmd_usage.txt
comando cat para operacoes com arquivos.
comando cp para copia de arquivos ou diretorios.
comando ls para listar o conteudo de arquivos e diretorios.

3. Copiar o conteúdo de um arquivo

Você pode copiar o conteúdo de uma arquivo para outro.
$ cat program.pl >backup_prgm.pl


Como visto acima, uma vez que usamos a redireção de saída, o conteúdo exibido na saída padrão (sdtout), foi redirecionada para dentro do novo arquivo backup_pqrm.pl:
$ cat backup_pgrm.pl
#!/usr/bin/perl

if( 2 ge 3) {
print "maior\n";
}else {
print "menor\n";
}

4. Concatenar o conteúdo de múltiplos arquivos

Através do comando cat, você pode concatenar o conteúdo de mais de uma arquivo dentro de um novo.
Por exemplo, os códigos de program.pl e program2.pl foram combinados em um novo arquivo all_pgrm.pl.
$ cat program.pl program2.pl >all_pgrm.pl

Como vsito acima, o saída padrão (stdout) foi redirecionada e um novo arquivo foi criado com o conteúdo dos arquivos program.pl e program2.pl. Verifique o conteúdo do arquivo all_pgrm.pl:
$ cat all_pgrm.pl
#!/usr/bin/perl

if( 2 ge 3) {
print "maior\n";
}else {
print "menor\n";
}
#!/usr/bin/perl

@arr = qw(1,2,3);
$ref = \@arr;
print ref $ref;

5. Exibindo numeração das linhas

Para exibir o conteúdo de um arquivo com a numeração na frente de cada  linha, use a opção -n.
$ cat -n program.pl
1 #!/usr/bin/perl
2
3
4 if( 2 ge 3) {
5 print "maior\n";
6 } else {
7 print "menor\n";
8 }
9
10

Como você verificou acima, mesmo as linhas vazias foram numeradas. para numerar apenas as linhas não-vazias, use a opção -b.
$ cat -b program.pl
1 #!/usr/bin/perl
2     
3 if( 2 ge 3) {
4 print "maior\n";
5 } else {
6 print "menor\n";
7 }
Note que as linhas que contenham espaços não são consideradas vazias, como verificado na linha 2.

6. Concatenar conteúdo de arquivos juntamente com a entrada de stdin

Existe a possibilidade de ler linhas da entrada padrão (stdin) e concatená-las juntamente com o conteúdo de outros arquivos. Portanto, o usuário pode inserir seu próprio conteúdo.
No exemplo seguinte, você pode inserir uma poucas linhas (de stdin) no início juntamente com o conteúdo concatenado de outros arquivos.
$ cat - program.pl program2.pl >all_pgrm.pl
Conteudo dos arquivos : program.pl, program2.pl


Como pode ser visto, um hífem, "-", sem as aspas, é inserido onde você pode ler da entrada padrão,  consequentemente um linha de stdin foi inserida no início do novo arquivo criado all_pgrm.pl, a partir da concatenação do conteúdo dos arquivos program.pl e program2.pl:
$ cat -n all_pgrm.pl

1 Conteudo dos arquivos : program.pl, program2.pl
2 #!/usr/bin/perl
3
4
5 if( 2 ge 3) {
6 print "maior\n";
7 } else {
8 print "menor\n";
9 }
10
11
12 #!/usr/bin/perl
13
14 @arr = qw(1,2,3);
15 $ref = \@arr;
16 print ref $ref;

7. Não exibir repetidas linhas vazias

Às vezes os arquivos podem conter repetidas linhas vazias que você não deseja que sejam exibidas, enquanto visualiza o conteúdo de um determinado arquivo. cat tem uma opção chamada -s que suprime consecutivas linhas vazias em apenas uma.
Como verificado no item 5, existem duas linhas vazias consecutivas no arquivo program.pl numeradas 9 e 10 que podem ser suprimidas em apenas uma, como a seguir:
# cat -sn program.pl
1 #!/usr/bin/perl
2
3
4 if( 2 ge 3) {
5 print "maior\n";
6 } else {
7 print "menor\n";
8 }
9

As linhas 9 e 10 foram suprimidas em apenas uma linha exibida.

8. Exibindo os caracteres End o of Line e Tab

Você pode fazer o comando cat exibir o carácter $ no final de cada linha. Normalmente ao listar o conteúdo de arquivos.
Por exemplo, use a opção -e para o arquivo program.pl. Como mostrado abaixo, a terceira linha deste arquivo (i.e:program.pl) não é vazia assim como a linha 7.
$ cat -ne program.pl
1 #!/usr/bin/perl$
2 $
3     $
4 if( 2 ge 3) {$
5 print "maior\n";$
6 } else {$
7 print "menor\n";      $
8 }$
9 $
10 $

Use a opção -T para exibir caracteres tab. É exibido ^I (circunflexo seguido da letra I) para caracteres TAB. Como visto, as linhas 5 e 7 iniciam com tab.
$ cat -neT program.pl
1 #!/usr/bin/perl$
2 $
3     $
4 if( 2 ge 3) {$
5 ^Iprint "maior\n";$
6 } else {$
7 ^Iprint "menor\n";      $
8 }$
9 $
10 $

9. Ler um conteúdo até encontrar um padrão específico

Por exemplo, quando você está lendo a entrada padrão (stdin), você pode fazê-lo até uma linha que contenha um padrão específico, um carácter. No exmplo a seguir, o bloco de linhas será lido da entrada padrão (stdin) até encontrar o carácter End of File (EOF) e imprime na saída padrão (stdout).
$ cat <<EOF
> comando mv para mover arquivso e diretorios
> comando topo para exibir tarefas do linux
> EOF
mv comando mv para mover arquivso e diretorios
top comando topo para exibir tarefas do linux

10. Exibindo o conteúdo de um arquivo de trás para frente

Bem, este comando é mais uma espécie de truque. Não é o comando cat, mas está relacionado.
tac é o inverso de cat. Como se pode imaginar, tac exibirá exatamente o conteúdo de trás para frente das linhas (linhas inferiores são exibidas primeiro). Se você deseja exibir os caracteres ao inverso de uma linha, deve utilizar o comando rev.
Por exemplo, o arquivo program.pl é exbido com seu conteúdo em linhas na ordem inversa :
$ tac program.pl 

}
 print "menor\n";
} else {
 print "maior\n";
if( 2 ge 3) {

#!/usr/bin/perl

Nenhum comentário:

Postar um comentário

LinkWithin

Related Posts Plugin for WordPress, Blogger...