Grande Flávio, Vc não sabe o quanto te agradeço pela informação, já tinha perguntado a muita gente e procurado em vários lugares, mas na velocidade que eu tô, acho até que passei por cima de muita coisa. Fico muito agradecido e te devendo uma. Não vou esquecer. Rafig --- Flavio Junior <[EMAIL PROTECTED]> escreveu:
> Com o sed voce pode fazer isso.. > Usando "a" (append) ou "i" de insert, por exemplo: > > [EMAIL PROTECTED]:~$ cat test.txt > abc > cba > ads > nada > adfa > adfadfa > > [EMAIL PROTECTED]:~$ sed '/nada/i TESTANDO' > test.txt > abc > cba > ads > TESTANDO > nada > adfa > adfadfa > > [EMAIL PROTECTED]:~$ sed '/nada/a TESTANDO' > test.txt > abc > cba > ads > nada > TESTANDO > adfa > adfadfa > > [EMAIL PROTECTED]:~$ sed '3a TESTANDO' test.txt > abc > cba > ads > TESTANDO > nada > adfa > adfadfa > > [EMAIL PROTECTED]:~$ > > > Sorte! > > > Flávio do Carmo Junior > > > On 9/16/06, Rafig <[EMAIL PROTECTED]> wrote: > > Valeu, Flávio, confesso que eu não explicaria > melhor que isto. Muito boa explicação. > > E, se vc puder ou souber tirar a minha dúvida eu > te agradeço: > > Como eu faço para inserir algo no meio de um > arquivo ? > > O echo acrescenta ao fial da linha ou modifica > tudo no arquivo, mas não é isso que quero. Por > exemplo, telho o arquivo /etc/squid.conf e gostaria > de acrescentar uma ACL ou uma regra neste arquivo > como faria usando um shell-script ? Eu preciso que > atavés de linha de comando ou num script acrescentar > algo num determinado arquivo e isto deverá ser no > meio do arquivo. Vc sabe como faço ? > > O que uso SED ou AWK ? ou outra coisa ? > > Agradecerei muito a quem puder me ajudar. > > Rafig > > > > Flavio Junior <[EMAIL PROTECTED]> escreveu: Hm.. > deixa eu tentar atender o pedido do Rafig.. > > > > Isaias, esse comando que o Rafig te passou vai > fazer o seguinte: > > - Percorrer o arquivo linha a linha e exibir na > tela* > > - Quando ele encontrar a ocorrencia de QUALQUER > "*" (asterisco) em > > QUALQUER lugar do arquivo, ele vai substituir isso > por um "." > > (ponto)... > > - No final, aquele ">>" que ele fez ali, direciona > na verdade a saida > > q disse no primeiro item que seria em tela para um > arquivo, ou seja, > > ele nao altera seu arquivo direto e sim gera um > novo arquivo "arquivo > > final" com essa alteração já realizada. > > > > Dois pontos importantes, na forma como voce > solicitou a ajuda voce foi > > bem especifico quanto ao que alterar e onde, por > isso a maioria do > > pessoal passou soluções mais "complexas", por que > era necessario > > tratar uma linha X e uma coluna Y. Se por acaso > JAMAIS vá aparecer um > > * no meio do seu arquivo que NÃO possa ser > alterado pra um ".", essa > > solução do Rafig é mto boa porem, se voce disser q > quer alterar > > SOMENTE o asterisco que aparecer na linha X e na > coluna Y, essa > > solução nao será a melhor, visto que ela altera > qualquer asterisco em > > qualquer lugar. > > > > Então fica ao seu criterio, escolher a melhor > solução. Eu vou > > contribuir usando a ideia do Rafig e se ela for > suficiente pra voce > > blz. > > > > Como outro amigo nosso ai disse, o sed possui a > opção "-i", que faz > > com que voce não precise gerar um arquivo com a > alteração e manter o > > original, se for isso que voce quer é só adicionar > o -i na linha do > > rafig e esquecer a parte do >> arquivo final, > ficando assim: > > > > $ sed -i 's/*/./g' arquivo.txt > > > > Outro detalhe que vale dizer, aquele "g" no final > do comando do sed > > ali quer dizer TODOS na linha, ou seja, TODOS * > que aparecerem na > > linha vao virar . - se tu quiser que somente o > primeiro * encontrado > > na linha vire ., é só tirar o g. Outro detalhe, > unindo as outras > > respostas, se o numero da linha onde esse * vai > aparecer for fixo, > > seria interessante voce especifica-lo pro sed, > assim voce evita que > > outros * de outras linhas virem . :) > > > > No final, a minha contribuição organizando as > respostas da galera e > > acreditando que seu problema nao era tao > complicado qto vc pensou é: > > > > $ sed -i '15s/*/./' arquivo.txt > > > > Assim eu disse, > > - altere no arquivo arquivo.txt > > - na linha 15 > > - substitua o primeiro * que encontrar por . > > > > > > Espero ter ajudado, > > > > Sorte. > > > > Flávio do Carmo Junior > > > > On 9/15/06, Isaias de Assis Machado wrote: > > > PERFEITO... > > > > > > ________________________________ > > > > > > De: [email protected] > [mailto:[EMAIL PROTECTED] Em nome de > Tiago Barcellos Peczenyj > > > Enviada em: sexta-feira, 15 de setembro de 2006 > 16:59 > > > Para: [email protected] > > > Assunto: Re: [shell-script] referenciar arquivo. > > > > > > > > > $ awk -v X="." -v L=17 -v C=15 'NR!=L{print} > > > NR==L{print substr($0,0,C-1),X,substr($0,C+1)}' > file > > > > > > X é o caracter q vc quer mostrar, L é a linha e > C é a coluna... > > > > > > serve isso? > > > > > > On 9/15/06, Isaias de Assis Machado wrote: > > > > Peguei o arquivo no site do grupo.. > > > > fiz o seguinte: > > > > > > > > [EMAIL PROTECTED] cat arquivo.txt > > > > xx000000000111111111122222 > > > > xx123456789012345678901234 > > > > 01 > > > > 02 > > > > 03 > > > > 04 > > > > 05 > > > > 06 > > > > 07 > > > > 08 > > > > 09 > > > > 10 > > > > 11 > > > > 12 > > > > 13 > > > > 14 > > > > 15 * > > > > 16 > > > > 17 > > > > > > > > [EMAIL PROTECTED] cat arquivo.txt | sed -n > '17p'|cut -b15- > > > > * > > > > > > > > Beleza.. Isso me mostra o caractere em > questao.. Mas como eu farei pra sobrescrever ele no > arquivo.txt (tipo.. Quero escrever um "." (ponto) no > lugar dele...)................... > > > > > > > > > > > > []'s > > > > > > > > Isaias > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > De: [email protected] > [mailto:[EMAIL PROTECTED] Em nome de > rafig38 > > > > Enviada em: sexta-feira, 15 de setembro de > 2006 15:16 > > > > Para: [email protected] > > > > Assunto: [shell-script] referenciar arquivo. > > > > > > > > > > > > Tem o arquivo em htm chamado sed_ptBR[1].html > nos arquivos do grupo > > > > que vc pode consultar. > > > > > > > > > > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham > texto foram removidas] > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > Esta lista não admite a abordagem de outras > liguagens de programação, como perl, C etc. Quem > insistir em não seguir esta regra será moderado sem > prévio aviso. > > > > > --------------------------------------------------------------------- > > > > Sair da lista: > [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > > > > Esta lista é moderada de acordo com o previsto > em http://www.listas-discussao.cjb.net > > > > > --------------------------------------------------------------------- > > > > Servidor Newsgroup da lista: news.gmane.org > > > > Grupo: > gmane.org.user-groups.programming.shell.brazil > > > > > > > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Tiago B Peczenyj > > > Linux User #405772 > > > > > > # cd /pub > > > # more beer > > > > > > > > > > > > [As partes desta mensagem que não continham > texto foram removidas] > > > > > > > > > > > > > --------------------------------------------------------------------- > > > Esta lista não admite a abordagem de outras > liguagens de programação, como perl, C etc. Quem > insistir em não seguir esta regra será moderado sem > prévio aviso. > > > > --------------------------------------------------------------------- > > > Sair da lista: > [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > > > Esta lista é moderada de acordo com o previsto > em http://www.listas-discussao.cjb.net > > > > --------------------------------------------------------------------- > > > Servidor Newsgroup da lista: news.gmane.org > > > Grupo: > gmane.org.user-groups.programming.shell.brazil > > > > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > Esta lista não admite a abordagem de outras > liguagens de programação, como perl, C etc. Quem > insistir em não seguir esta regra será moderado sem > prévio aviso. > > > --------------------------------------------------------------------- > > Sair da lista: > [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > > > --------------------------------------------------------------------- > > Servidor Newsgroup da lista: news.gmane.org > > Grupo: > gmane.org.user-groups.programming.shell.brazil > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > > > > > Jesus said: I'm the way, the truth and the life, > anyone come to the God without me. > > Think about this. > > Rafig - ICQ: 271557403 > > > > > > --------------------------------- > > Yahoo! Search > > Música para ver e ouvir: You're Beautiful, do > James Blunt > > > > [As partes desta mensagem que não continham texto > foram removidas] > > > > > > > > > --------------------------------------------------------------------- > > Esta lista não admite a abordagem de outras > liguagens de programação, como perl, C etc. Quem > insistir em não seguir esta regra será moderado sem > prévio aviso. > > > --------------------------------------------------------------------- > > Sair da lista: > [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > > > --------------------------------------------------------------------- > > Servidor Newsgroup da lista: news.gmane.org > > Grupo: > gmane.org.user-groups.programming.shell.brazil > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > Esta lista não admite a abordagem de outras > liguagens de programação, como perl, C etc. Quem > insistir em não seguir esta regra será moderado sem > prévio aviso. > --------------------------------------------------------------------- > Sair da lista: > [EMAIL PROTECTED] > --------------------------------------------------------------------- > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > --------------------------------------------------------------------- > Servidor Newsgroup da lista: news.gmane.org > Grupo: > gmane.org.user-groups.programming.shell.brazil > > > Links do Yahoo! Grupos > > > > > > > > Jesus said: I'm the way, the truth and the life, anyone come to the God without me. Think about this. Rafig - ICQ: 271557403 _______________________________________________________ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
