Contornando um problema com o sed
Sei sei, o blog anda meio parado… desculpa aí!!!
Faz um tempo passei por um problema que na época não consegui contornar, não tive muito tempo pra isso também e depois não foi mais necessário… mas isso ficou matutando.
Esses dias conversando com o Cesar Vianna sobre shell script ele me deu a dica (o cara tá ficando bom em Shell), usar o sed pra mascarar a string.
O problema era o seguinte: varrer um diretório e realizar uma ação sobre cada linha da saída, ou seja, arquivos e diretórios internos ao primeiro.
Daí você pensa em algo no estilo:
for i in `ls -1`; do echo $i; done;
ou
ls -1 | xargs ls
Blz? Foi o que eu fiz e tudo funcionava na boa até que…
…até que algum diretório ou arquivo tenho espaços (” “) no seu nome, daí o script vai por agua abaixo… invés de considerar apenas a quebra de linha como divisor para a rotina seguinte, o espaço também entra na jogada e quebra tudo.
E aí que entra o sed, vamos então mascarar a string e realizar os comandos seguintes, dentro de um for por exemplo, sobre a string que realmente queremos:
for i in `ls -1| sed s/[” “]/”\*”/g`; do ls “$i”; done;
O sed nos dá a string que estamos procurando e as aspas não deixa margens ao erro quando lemos a variável $i.
É claro que o comando ls dentro do for não tem utiliade nenhuma é só pra exemplificar, mas anote essa linha, você ainda vai precisar dela!
Dê uma fuçada na documentação do sed (e aprenda expressões regulares, é claro!) e divirta-se, shell script é muito bom e oferece um leque muito grande de possibilidades para um administrador de rede!!!

Essa eu vi hoje, não testei por completo ainda, mas tô apostanto.
Já conhecia esse site, mas resolvi voltar lá para ler alguns artigos e aprender mais um pouco sobre desenvolvimento WEB.
Bah, minhas aulas vão começar justo na semana do FISL, é a vida.