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
Maneira rápida de encontrar e substituir, ajudar jkl_jkl Programação Shell Script e 1 03-06-2008 07:41
Perl: busca de corda em linha, em seguida, procurar e substituir texto Crypto Programação Shell Script e 4 01-04-2008 10:24
Qual é a maneira rápida de eliminar estes ficheiros? tonyvirk UNIX para Dummies Perguntas & Respostas 4 01-01-2008 08:02
Necessidade de pesquisa e substituição em vários arquivos no diretório hierarquia umen Programação Shell Script e 3 12-24-2007 04:56
Procurar e substituir texto multi-line em arquivos Marz Programação Shell Script e 10 10-10-2005 09:05

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 01-25-2008
dbsurf dbsurf is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 23
busca rápida e substituir em todos os arquivos

Oi

Preciso encontrar uma string em todos os arquivos e substitua THT string com espaço em branco ea necessidade de reorientar todos os ficheiros na mesma directoria novamente.

Agora eu estou usando

find. /-name "*. dmp" | xargs perl -pi-e 's / \ \ n / / g' | sed 's /.$// g'

mas agora o seu não redirrecting corretamente.

tendo o seu tempo demasiado para esta operação.

Existe alguma maneira de pesquisar e substituir muito rápido em todos os milhares de arquivos rapidamente, sem looping.
  #2 (permalink)  
Old 01-25-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.770
Isto remove \ N, substitui-la com "" e então corta fora o último caractere de cada linha e insere um espaço por lá. Você conhece dos2unix (ou dos2ux)?

Código:
find ./ -name "*.dmp" | xargs perl -pi -e 's/\\N/ /g; s/.$/ /g'
Se quiser que ele correr mais rápido tente usar fundo processos:
Código:
cnt=0
find ./ -name "*.dmp" |\
while read file do
  perl -pi -e 's/\\N/ /g; s/.$/ /g'  $file  &
  cnt=$cnt+1
  z=$(( $cnt % 10 ))
  if [[ $z -eq 0 ]] ; then
     wait
  fi
done 
wait
Este processo é executado dez ao mesmo tempo em segundo plano. E então aguarda conclusão. O código que você proivided não substitui os caracteres com um espaço

Última edição por vgersh99; em 01/25/2008 02:43.. Motivo: faltando ']'
  #3 (permalink)  
Old 01-25-2008
dbsurf dbsurf is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 23
Oi sua dando mensagem de erro com o uso código acima
Erro de sintaxe na linha 7: ']' inesperado
  #4 (permalink)  
Old 01-25-2008
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.122
Que editei o original destacamento por Jim.
  #5 (permalink)  
Old 01-25-2008
dbsurf dbsurf is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 23
Oi

Está funcionando?

É possível substituir o abaixo sed também para a sintaxe acima xargs perl
cenário
sed -e: um e-'/;$/! N; s / \ n / /; ta '-e' s /;$//' arquivo
  #6 (permalink)  
Old 01-25-2008
KevinADC KevinADC is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2008
Lugares: 731
Realmente, as exigências são ridículas. Não há nenhuma maneira de pesquisar e substituir qualquer coisa em milhares de arquivos rapidamente. Você pode encontrar algumas formas de mais rápido do que outros, mas nada vai ser uma fórmula mágica. Sugiro que você experimente Perls inplace editor, poderá ser mais rápido do que sed embora eu realmente não sei.
Closed Thread

Marcadores

Tags
linux

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 12:19.


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