Quando for necessário coletar informações em uma lista tabular, podemos utilizar o comando $awk. Por lista tabular entendemos qualquer entrada de dados que tenha um delimitador conhecido, seja ele espaço, vírgula, ponto-e-vírgula, ponto, dois-pontos, etc, como por exemplo:
joão maria pedro teresa
joão,maria,pedro,teresa
joão:maria:pedro:teresa
Como entrada do $awk, cada item é uma variável especial, começando em $1 e seguindo $n, onde n pode ser qualquer outro número. Se quisermos os nomes maria e teresa, seria o seguinte comando:
$awk '{print $2,$4}'
Por padrão, o separador usado é o espaço. Se necessário, podemos definir outro separador, com o parâmetro -F.
$awk -F "," '{print $2,$4}'
Vamos agora acrescentar à saída dois pontos entre os nomes (o resultado exibido seria maria:teresa):
$awk '{print $2":"$4}'
Podemos também usar mecanismos de decisão (se a segunda entrada igual a maria, imprima):
$awk '($2=="maria") {print $2,$4}'
Claro que não estou abrangendo toda a gama de opções que o comando permite realiza, existem muitos outros, basta consultar o $man awk. Além disso, todos esses comandos são aplicáveis a diversas entradas de dados, seja um $ls, um $cat, ou mesmo um arquivo de texto.
30 de junho de 2009
24 de junho de 2009
Exemplos de uso do find
O find é um comando utilizado para realizar buscas, geralmente em nomes de arquivos. Seu uso básico é relativamente simples:
(lista todos os arquivos, em todos os diretórios, com uma extensão especificada)
$find /* -name *.html
A ferrementa se mostra realmente poderosa quando precisamos algo mais elaborado, como por exemplo buscar um conteúdo dentro dos arquivos:
(lista, em todos os arquivos, o nome do arquivo - e a linha deste - onde encontra-se uma string)
$find /* -print0 | xargs -0 grep 'shell57'
Ainda é possível ver um terceiro exemplo de uso, mas agora manipulando nomes de diretório:
(procura, dentro da pasta home de cada usuário, se existe a pasta public_html e mostra o caminho completo)
$find /home/*/public_html -maxdepth 0 -type d
Claro que existem muitos outros casos de uso, inclusive que podem fazer exatamente a mesma coisa de formas diferentes, mas já é um começo e ajuda a, pelo menos, saber qual a comando podemos recorrer. É necessário, no entanto, estudar seus parâmetros possíveis - que são muitos! -, para aplicá-lo em algum caso específico de busca.
(lista todos os arquivos, em todos os diretórios, com uma extensão especificada)
$find /* -name *.html
A ferrementa se mostra realmente poderosa quando precisamos algo mais elaborado, como por exemplo buscar um conteúdo dentro dos arquivos:
(lista, em todos os arquivos, o nome do arquivo - e a linha deste - onde encontra-se uma string)
$find /* -print0 | xargs -0 grep 'shell57'
Ainda é possível ver um terceiro exemplo de uso, mas agora manipulando nomes de diretório:
(procura, dentro da pasta home de cada usuário, se existe a pasta public_html e mostra o caminho completo)
$find /home/*/public_html -maxdepth 0 -type d
Claro que existem muitos outros casos de uso, inclusive que podem fazer exatamente a mesma coisa de formas diferentes, mas já é um começo e ajuda a, pelo menos, saber qual a comando podemos recorrer. É necessário, no entanto, estudar seus parâmetros possíveis - que são muitos! -, para aplicá-lo em algum caso específico de busca.
palavras-chave:
conteúdo de arquivo,
diretório,
mecanismos de busca,
nome de arquivo
8 de junho de 2009
colocando um script na inicialização automática
Existe uma funcionalidade muito legal do linux que é a inicialização automática. Ela pode ser qualquer coisa: um script de limpeza, um início de processo, uma verificação de segurança; enfim, qualquer coisa que precise ser rodada automaticamente.
As regras são, a grosso modo, essencialmente para inicialização; mas podem ser para desligamento, reinicialização, entre outros. Em um momento mais oportuno falo sobre isso.
Seja qual for a alternativa escolhida para adicionar o script à inicialização, deve-se primeiramente criá-lo diretamente ou linká-lo na pasta /etc/init.d/.
Se quisermos fazer "na unha", podemos fazer então os links simbólicos em cada um dos níveis de rc ou, muito mais facilmente, usar o comando que cria os links:
$ update-rc.d nome-do-script defaults
Se, por algum motivo, precisarmos removê-lo da inicialização:
$ rm /etc/init.d/nome-do-script
$ update-rc.d nome-do-script remove
Caso não o retiremos do /etc/init.d/, o comando não pode ser completado.
As regras são, a grosso modo, essencialmente para inicialização; mas podem ser para desligamento, reinicialização, entre outros. Em um momento mais oportuno falo sobre isso.
Seja qual for a alternativa escolhida para adicionar o script à inicialização, deve-se primeiramente criá-lo diretamente ou linká-lo na pasta /etc/init.d/.
Se quisermos fazer "na unha", podemos fazer então os links simbólicos em cada um dos níveis de rc ou, muito mais facilmente, usar o comando que cria os links:
$ update-rc.d nome-do-script defaults
Se, por algum motivo, precisarmos removê-lo da inicialização:
$ rm /etc/init.d/nome-do-script
$ update-rc.d nome-do-script remove
Caso não o retiremos do /etc/init.d/, o comando não pode ser completado.
Assinar:
Postagens (Atom)

