terça-feira, setembro 19, 2017
Home » Dicas de Programas & Sites » Filtros de textos no Linux

Filtros de textos no Linux

Introdução

No Linux encontramos diversas ferramentas para trabalhar e transformar arquivos de textos puros (sem formatação), tais ferramentas são úteis quando estamos trabalhando com scripts no shell, verificando arquivos de log, etc.

Durante os exemplos abaixo, utilizaremos $ ou # antes do comando. o $ indica que o comando não precisa ser root e # indica que é necessário ser root.

Comandos

cat [opções] arquivo

O comando cat concatena arquivos, exibe seu conteúdo na tela e ainda pode receber texto digitado pelo teclado para um arquivo

Criando arquivo de texto com cat

$ cat > teste.txt

Exemplo

$ cat > teste.txt
Testando a criação de arquivos com cat
<CTRL> + D (finaliza o arquivo, vale ressaltar que os teclas devem ser pressionadas em uma linha vazia.

Visualizando arquivos com cat

$ cat teste.txt

Substituindo o conteúdo de arquivos (concatenando) com cat

$ cat teste.txt >teste2.txt

No exemplo acima, o conteúdo de teste2.txt será substituído pelo conteúdo de teste.txt

Para adicionar ao final do arquivo teste2.txt o conteúdo de teste.txt, os símbolos >> devem ser usados

Ex. cat teste2.txt >> teste1.txt
cat teste2.txt

cut [opções] arquivo

O comando cut, do inglês “cortar” tem a função de ler o conteúdo de um ou mais arquivos e exibi-los como uma coluna.

ex. Para que possamos exemplificar o cut, faz-se necessário um arquivo com formato de tabela, para tanto, crie o arquivo abaixo como exemplo:

cat > tabela1.txt
COLUNA1;COLUNA2;COLUNA3;COLUNA4;1;2;3;4;
10;20;30;40
100;200;300;400;
<CTRL>+D

Agora que criamos o arquivo, execute o cut de forma a capturar apenas a segunda coluna, usando o delimitador “;” (ponto-e-virgula)

cut -d ‘;’ -f2 tabela1.txt

Veja o Resultado:

COLUNA2
2
20
200

Explicando algumas opções do cut:

-d [delimitado] –> Configura o delimitador de colunas. O Padrão e TAB
-f [número] –> Exibe a coluna número
cut –help –> Exibe todas as opções

expand [opções] arquivo

o comando expand troca o TAB dentro dos textos para o número de espaços correspondentes. Muito útil para tornar um texto que faz uso das tabulações mais atrativo para determinados dispositivos, como o vídeo, impressora, arquivos, etc

ex. expand -t [número]  Especifica o número de espaços que o tab contém. o Padrão é 8
-i Converte somente o inicio das linhas

 fmt [opções] [arquivos]

O comando fmt formata o texto com uma largura específica, adicionando ou removendo espaços, conforme a largura desejada. Muito útil ao se usar impressoras matriciais que não contém muitas opções de impressão. O padrão de largura é 75 caracteres.

ex.: $ fmt -w 80 teste.txt
-w [numero] –> define a largura em caracteres
fmt -w 20 teste.txt
Resultado com o arquivo texte.exe criado anteriormente:
Ola. testanto a
criação de um
arquivo de texto
com cat

head [opções] [arquivos]

Exibe as primeiras linhas do texto. Por padrão, o head exibe as primeiras 10 linhas.

head -n 5 teste.txt
-n [número] –> define o número de linhas a serem exibidas

O comando acima mostra as primeiras 5 linhas do texto, pois a propriedade n está setada para 5.

join [opções] [arquivo1][arquivo2]

Une as linhas de de um ou mais arquivos que possuam um índice em comum. Este comando poderá ser utilizado como um banco de dados simples.

As opções mais utilizadas são:

-j1 [numero] –> Escolhe o campo número como índice para o arquivo 1.-j2 [número] –> Escolhe o campo número como índice para o arquivo 2.
-j [número] –> Escolhe o campo número como índice para ambos os arquivos

Exemplo:

Crie um arquivo chamado arquivo1.txt que contenha:

cat > arquivo1.txt
001:Governador
002:Presidente
003:Vereador
<CTRL>+D

Crie o arquivo2.txt da seguinte forma:

cat > arquivo2.txt
Moacir
Candido
Ferrugem
<CTRL>+D

Testando o comando:

$ join -t: arquivo1.txt arquivo2.txt

Notemos o Resultado:

001:Governador:001:Moacir
002:Presidente:002:Candido
003:Vereador:003:Ferrugem

nl[opções][arquivo]

O comando nl numera as linhas de um arquivo, com ou sem cabeçalho e rodapé

símbolos do nl:

\:\:\: -> Inicia o cabeçalho do texto\:\: -> Inicia o corpo do texto
\: -> Inicia o rodapé do texto

Algumas opções do nl:

-h [subopção] -> Formata o cabeçalho do texto
-b [subopção] -> Formata o corpo do texto
-f [subopção] -> Formata o rodapé do texto

As subopções são:

A -> Numerar todas as linhas
t -> Numerar somente as preenchidas
n -> Não numerar

Exemplo:

Imaginemos o seguinte arquivo testenl.txt

\:\:\:
Relatorio Purianfo
———————————————–
Nome Função
———————————————-
\:\:
Diego Webmaster
Rodrigo WebDevelop
\:
———————————————

Agora testemos o nl:

$nl testenl.txt

Relatorio Purianfo
———————————————–
Nome Função
———————————————-

1   Diego Webmaster
2  Rodrigo WebDevelop

———————————————

od [opções][arquivo]

Exibe o conteúdo de um arquivo nos formatos hexadecimal, octal, ASCII, e nome dos caracteres

opções:

-t [tipo]

tipos:

a -> Nome do caractere
c -> ASCII
o -> Octal
x -> Hexadecimal

Exemplo:

od -ta teste.txt

split[opções][arquivos][arquivoSaida]

O comando split serve para dividir um arquivo grande em vários menores. A divisão pode ocorrer pelo número de linhas ou pelo tamanho em bytes

Ex.: split -4 teste.txt arquivosaida

 

tail[opções][arquivos]

O tail é bastante útil para administradores de sistemas. Ele visualiza as ultimas linhas de qualquer arquivo.

A opçãpo “-n” especifica quantas linhas deverão ser exibidas na tela. o comando “-f”, por sua vez, indica que leremos do final para o começo (de baixo para cima).

Ex. tail -6 teste.txt -f

 

paste [opções] arquivo1 arquivo2

O comando paste é utilizado para concatenar as linhas de diversos arquivos em colunas verticais.

As opções mais usadas são:
-d’s’ : Separa as colunas com o símbolo s dentro das aspas.
-s     : Concatena todo o conteúdo de um arquivo com uma linha para cada arquivo.

Exemplo:
Suponha que o arquivo1 tenha o seguinte conteúdo:
diego

E o arquivo2 tenha o seguinte conteúdo:
purainfo.com.br

Ao utilizar o comando paste, o resultado será o seguinte.
$ paste -d ‘@’ arquivo1 arquivo2
[email protected]

Fico por aqui pessoal, se houverem visitas consideráveis e comentários, faço a parte 2.

 

Sobre Diego Duarte

Diego Duarte Atua como coordenador de NOC, toca um violãozinho nas horas vagas e tenta eternamente entender o que o fez escolher TI

Veja também!

Logo Powershell

Convertendo Powershell Scripts em Executáveis (ps1 para exe)

Olá, Pessoal A dica de hoje pode facilitar a vida de quem deseja automatizar tarefas …

Este artigo lhe foi útil? comente e ajude outros acrescentando seu ponto de vista!