Pessoal é o seguinte eu tenho um arquivo com o seguinte conteudo abaixo, eu queria substituir somente no inicio o 01 por 03 e o restante de 01 não mudar nada, alguem poderia me ajudar.
01|8862787| |0|0.05| | | | | |1900-01-01 00:00:00|1900-01-01 00:00:00|0.0| |0.0|0.0|1900-01-01
Olá Levi,
Se for substituir somente o primeiro "01" que encontrar num arquivo e parar, faça:
$ sed 's/01/03/' arquivo > arquivo_novo
Se for substituir o primeiro campo, se ele for "01" por "03", no arquivo todo (estou considerando que o separador de campos é "|", faça:
$ sed 's/01|/03|/g' arquivo > arquivo_novo
A diferença é o "g" no final que irá fazer ele procurar pelo padrão até o final do arquivo e coloquei o "|" para garantir que estou procurando "01|" e não somente "01".
Qualquer coisa, envia outro email.
[]'s
Gustavo Picoloto
Em 31/08/07, Adere - Levi / Analista de Suporte Linuxlevi.alves@adere.com escreveu:
Pessoal é o seguinte eu tenho um arquivo com o seguinte conteudo abaixo, eu queria substituir somente no inicio o 01 por 03 e o restante de 01 não mudar nada, alguem poderia me ajudar.
01|8862787| |0|0.05| | | | | |1900-01-01 00:00:00|1900-01-01 00:00:00|0.0| |0.0|0.0|1900-01-01
Levi Leopoldino Alves T.I. - (19)2104-0700 Adere Produtos Auto-Adesivos Ltda visite nosso site http://www.adere.com
Esta mensagem tem caráter confidencial, se você recebeu-a por engano, por favor delete-a imediatamente.
-- Fedora-users-br mailing list Fedora-users-br@redhat.com https://www.redhat.com/mailman/listinfo/fedora-users-br
Gustavo Picoloto escreveu:
Se for substituir somente o primeiro "01" que encontrar num arquivo e parar, faça:
$ sed 's/01/03/' arquivo > arquivo_novo
Dúvida boba: se a linha do arquivo for "bla bla bla 0123456", esse comando vai trocar a linha para "bla bla bla 0323456", certo?
Eu não sei usar o sed (sei que é poderoso, mas quando eu quero coisas muito poderosas parto logo para artilharia pesada, tipo perl, C, etc), mas ele reconhece começo da linha?
$ sed '/$01/$03/' arquivo > arquivo_novo
funcionaria?
Alberto Monteiro
Levi Leopoldino Alves escreveu:
Pessoal é o seguinte eu tenho um arquivo com o seguinte conteudo abaixo, eu queria substituir somente no inicio o 01 por 03 e o restante de 01 não mudar nada, alguem poderia me ajudar.
01|8862787| |0|0.05| | | | | |1900-01-01 00:00:00|1900-01-01 00:00:00|0.0| |0.0|0.0|1900-01-01
É um arquivo texto? Não sei se 'sed' funciona neste caso:
cat arquivo_inicial | sed /$01/$02/ > arquivo_final
Alberto Monteiro
É um arquivo texto? Não sei se 'sed' funciona neste caso:
cat arquivo_inicial | sed /$01/$02/ > arquivo_final
Anta. Besta quadrada. Aprende o comando antes de ensinar errado:
cat arquivo_inicial | sed /^01/^02/ > arquivo_final
$ é para fim de linha, e ^ para começo!!!
Alberto Monteiro
PS: sintomas de que eu realmente estou ficando louco: além de falar comigo mesmo, ainda chingo!
br-users@lists.fedoraproject.org