The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas
.
google unix.com



UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos!

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
receber próximos 2 linhas após um "padrão linha" fongthai UNIX para Dummies Perguntas & Respostas 2 05-09-2008 05:20
Explique a linha "mn_code \u003d` env | grep ".. mn" | awk-F "\u003d" '(print $ 2)' `" Lokesha UNIX para Dummies Perguntas & Respostas 4 12-20-2007 01:52
Como remover usuário que exibem erro -> "O nome é muito longo" mgonzal AIX 1 06-27-2005 05:47
Muito tempo que eu usei "espera" scriptosaurus Programação Shell Script e 2 04-14-2005 04:51
"Argumentos demasiado longo" Peterh UNIX para Dummies Perguntas & Respostas 2 08-12-2003 09:07

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 08-20-2008
hern14 hern14 is offline
Usuário
  
 

Join Date: Feb 2008
Lugares: 22
VI - "A substituição padrão é demasiado longo"

Oi,

Estou tentando substituir um valor em um script com outro valor. Estou realizando um vi comando de outro script.


Código:
vi - ${conf_path}/CANCEL_CD_PART2.txt<<!
:%s/RANGE/${btch_range}/g
:wq
!

'Range' é o valor atual que o parm no script tem outros (PARM1 \u003d GAMA), juntamente com algumas outras coisas. Eu quero substitui-lo com o valor de $ btch_range que é

Citação:
145857150104000,145857160204000,145857170104000,145857180204000,145857190204000,145857220104000,1458 57230104000,1458572401
04000,145857250104000,145857260104000,145857290104000,145857300204000,145857310104000,14585801020400 0,145858020204000,14585805010200
0,145858060104000,145858070204000,145858080104000,145858090204000,145858120104000,145858130104000,14 5858140204000,145858150304000
Os valores em US $ btch_range não pode ser alterada, uma vez que estes são números de lote gerado pelo sistema. Quando tento executar o vi comando indicado acima, eu recebo o seguinte erro:

Citação:
ex: 0602-075 A substituição padrão é demasiado longo. O limite é de 256 caracteres.
Qualquer idéias?

Obrigado!
  #2 (permalink)  
Old 08-21-2008
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderador (o tutor)
  
 

Join Date: Jun 2008
Localização: ÍNDIA
Mensagens: 1.400
em vi o editor que você pode substituir máximo de 256 bytes ..
assim tente usar sed externamente que permite até 4000 caracteres
  #3 (permalink)  
Old 08-22-2008
hern14 hern14 is offline
Usuário
  
 

Join Date: Feb 2008
Lugares: 22
Usado sed

Obrigado! Funcionou. Usei o sed comando em vez disso, como você sugeriu.


Código:
sed "s/RANGE/${btch_range}/g" ${conf_path}/CANCEL_CD_PART2.txt > ${conf_path}/CANCEL_CD.txt

  #4 (permalink)  
Old 08-22-2008
ddreggors ddreggors is offline
Usuário
  
 

Join Date: Aug 2008
Lugares: 91
ou você pode definir o intervalo para a variável não o valor contido nessa variável:


Código:
:%s/RANGE/\${btch_range}/g

notar o "\" antes do "$"

isso antes de nós:

Código:
PARM1=RANGE

e depois temos:


Código:
PARM1=${btch_range}

enquanto esta está dentro de um shell script, se está em um arquivo de configuração não irá expandir a variável $ (btch_range) (substituir a variável com o seu valor quando lido), então a resposta anterior, é o que você deseja.
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 09:56.


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