Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Vi e Awk

Colaboração: Marcelo Pereira

Data de Publicação: 04 de Outubro de 2001

Ao editar arquivos texto, especialmente aqueles de configuração, às vezes nos deparamos com a necessidade de inserir caracteres no início de várias linhas, na maior parte das vezes isso acontece quando precisamos comentar um bloco inteiro de código, e isso faz com que tenhamos o trabalho de inserir um a um os caracteres que precisamos.

Utilizando as ferramentas disponíveis nas distribuições Linux/Unix/FreeBSD é possível agilizar não apenas este processo, mas inúmeros outros que possam surgir. Este é o caso do cat, sed, grep, awk, tail, head, cut, sort, entre outros.

A dica a seguir utiliza o awk para comentar blocos de texto, utilizando o editor de textos vi.

Para comentar algumas linhas:

  :li,lf ! awk '{ print "\# " $0 }'

Onde:

   li - Linha Inicial;
   lf - Linha Final;
   $0 - Indica 'toda' a linha.

Para li e lf, pode-se utilizar:

  - um valor absoluto;
  - um 'ponto', para indicar a linha 'atual';
  - '-n' para indicar as n linhas anteriores a linha atual;
  - '+n' para indicar as n linhas a partir da atual;

Exemplos:

Inserir a letra 'a' nas linhas 7,8,9,10,11,...,84:

  :7,84 ! awk '{ print "a" $0 }'

Inserir o caractere '#' nas 10 linhas a partir da linha atual:

  :.,+10 ! awk '{ print "\# " $0 }'

Inserir o caractere '#' nas 10 linhas anteriores a linha atual:

  :-10,. ! awk '{ print "\# " $0 }'

Note que alguns caracteres precisam ser cotados.

Para comentar todas as linhas de um arquivo:

  % cat file.txt | awk '{ print "# " $0 }' > file.txt.out

A utilização de $0 é feita no caso do script precisar incluir um caracter no início ou no final da linha, não sendo necessário alterar nenhum valor. No entanto, $0 indica 'todas as colunas' da linha, e estas colunas podem ser referencidas com $1 (coluna 1), $2 (coluna 2), $3 (coluna 3), $n (coluna n).

Exemplo, utilizando o ls:

Pega a lista dos arquivos de um diretório, ordena pelo tamanho em ordem crescente, seleciona as colunas 1, 5 e 9 (permissão, tamanho e nome) e exibe as 10 últimas linhas, ou seja, os 10 maiores arquivos. (pode parecer um exemplo ingênuo, mas é possível incrementá-lo para adequá-lo às necessidades de cada usuário.

  % ls -la | sort +4n | awk '{ print $1 " " $5 " " $9 }' | tail -n10

Com isso é possivel construir script bastante complexos, utilizando as ferramentas disponíveis na maior parte das distribuições espalhadas por aí.

Veja a relação completa dos artigos de Marcelo Pereira

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1336 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis