De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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í.
Error: No site found with the domain 's2.dicas-l.com.br' (Learn more)