[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] referenciar arquivo.
From: |
Flavio Junior |
Subject: |
Re: [shell-script] referenciar arquivo. |
Date: |
Fri, 15 Sep 2006 21:52:55 -0300 |
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 <address@hidden> wrote:
PERFEITO...
________________________________
De: address@hidden [mailto:address@hidden] Em nome de Tiago Barcellos Peczenyj
Enviada em: sexta-feira, 15 de setembro de 2006 16:59
Para: address@hidden
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 <address@hidden> wrote:
> Peguei o arquivo no site do grupo..
> fiz o seguinte:
>
> [isaias@home]$ cat arquivo.txt
> xx000000000111111111122222
> xx123456789012345678901234
> 01
> 02
> 03
> 04
> 05
> 06
> 07
> 08
> 09
> 10
> 11
> 12
> 13
> 14
> 15 *
> 16
> 17
>
> [isaias@home]$ 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: address@hidden [mailto:address@hidden] Em nome de rafig38
> Enviada em: sexta-feira, 15 de setembro de 2006 15:16
> Para: address@hidden
> 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: address@hidden
> ---------------------------------------------------------------------
> 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: address@hidden
---------------------------------------------------------------------
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
Re: RES: [shell-script] referenciar arquivo., Rafig, 2006/09/15