The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Necessidade de substituir a primeira palavra de uma linha, se ocorrer novamente na próxima linha (shell) geeko Programação Shell Script e 4 06-18-2009 03:36
busca de uma string, substituir toda a linha com a nova linha kkraja Programação Shell Script e 4 08-07-2008 03:26
Como substituir uma linha ukatru Programação Shell Script e 2 08-04-2008 03:51
Como substituir uma linha de três em sed ch0sen Programação Shell Script e 6 03-05-2008 12:08
sed - substituição da linha que contém o padrão coincide com uma nova linha kousikan Programação Shell Script e 2 03-24-2007 07:24

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Usuário
  
 

Join Date: Aug 2008
Lugares: 19
Red face Substitua com Nada

Oi,

Quero substituir algumas linhas em um arquivo "Source.txt", tendo padrão de pesquisa de entrada de um outro arquivo chamado "ABC".

Pesquisa padrão arquivo de entrada tem seguintes linhas:

vi abc
2637918
2707239
2709124
2709148
2709159
2709177
...........

Estou executando o seguinte código:

para i em `gato` abc; fazer perl -pi.bk4-e 's /^.*$ i. * / / g' Source.txt; feito

mas não é trabalho .......
pls help.
  #2 (permalink)  
Old 09-01-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderador (o tutor)
  
 

Join Date: Jun 2008
Localização: ÍNDIA
Mensagens: 1.418
enquanto lê linha
fazer
sed -i "s /^.*$ linha .* / / g" source.txt / / ou / / sed -i 's /^.*${ linha }.*// g'
feito <abc

ou tente

Última edição por vidyadhar85; em 09/01/2008 05:15..
  #3 (permalink)  
Old 09-01-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
Você deseja substituí-los com linhas vazias, ou eliminá-los? Apagar é fácil:


Código:
fgrep -vf abc Source.txt

Para substituir por nada, talvez a seguinte:


Código:
sed -e 's%.*%s/.*&.*//%' abc | sed -f - Source.txt

Talvez seu sed não pode lidar com o padrão de entrada para a opção-f, em caso afirmativo, o relatório de volta aqui e nós vamos pensar em soluções.

Looping repetida durante todos os padrões de entrada parece terrivelmente deselegante e ineficiente.
  #4 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Usuário
  
 

Join Date: Aug 2008
Lugares: 19
Vidya oi,
ur sed commnd é a substituição da linha de entrada padrão de pesquisa com nada, mas .... tamanho do arquivo de saída está a 3 vezes mais do que o arquivo orignal .... significa que cada hora depois de substituir a correspondência com o comando não está adicionando todo o arquivo para o arquivo de saída novamente ....

pl ajudar alguém ....... hw para superar este problema ...
  #5 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
DJ - o aluno
  
 

Join Date: Feb 2007
Local: Singapura / Bangalore / Cochin
Posts: 610

Código:
while read line
do
perl -i -ne 's/'$line'//g; print; ' filename
done < abc

  #6 (permalink)  
Old 09-01-2008
unknown123 unknown123 is offline
Usuário
  
 

Join Date: Aug 2008
Lugares: 19
Dennis ... it's também não funciona ....... pls especificar claramente.

Suponho meu arquivo de saída é OUTFILE .....

pls me diga exatamente o código ..
  #7 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
DJ - o aluno
  
 

Join Date: Feb 2007
Local: Singapura / Bangalore / Cochin
Posts: 610
Citação:
Originally Posted by unknown123 View Post
Dennis ... it's também não funciona ....... pls especificar claramente.

Suponho meu arquivo de saída é OUTFILE .....

pls me diga exatamente o código ..
O seu trabalho bem!
Entrada:

Citação:
[ "/ tmp"]> gato amostra
1233
mensagem
[ "/ tmp"]> gato OUTFILE
ensaio mensagem 1233 abcf FSD ds f
teste mensagem abccd masage mensagem
Código:

Citação:
[ "/ tmp"]> enquanto lê linha
> Fazer
> perl -i-ne 's /' $ linha "/ / g; impressão; 'OUTFILE
> Feito <amostra
Saída:

Citação:
[ "/ tmp"]> gato OUTFILE
teste abcf FSD ds f
teste abccd masage
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 08:30.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0