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
Remova os espaços após um delimitador kiran_418 UNIX para Dummies Perguntas & Respostas 1 04-29-2008 03:19
Como remover os espaços mahek_bedi UNIX para Dummies Perguntas & Respostas 2 08-10-2007 08:21
remover rasteira newline caracteres shweta_d Programação Shell Script e 7 06-05-2007 10:29
rasteira interrogação no nome do arquivo devoetfd UNIX para Dummies Perguntas & Respostas 3 06-09-2006 11:45
Liderar e os espaços sleepster Programação Shell Script e 7 10-29-2003 11:48

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 04-14-2008
Heathe_Kyle Heathe_Kyle is offline
Usuário
  
 

Join Date: Oct 2006
Lugares: 15
Remover rasteira G

Olá, estou tentando escrever um script que irá calcular a quantidade de dados restante num volume de armazenamento. Estou executando o Tru64 Unix versão 5.1B patch kit 6. O script está sendo executada contra uma AdvFS domínio. Estou a programação em Korn Shell versão M-11/16/88f.

A idéia básica é que eu quero correr df-h e grep para o domínio em questão. Eu então tubulação que a produção em awk para extrair os dois campos eu quero e armazená-los em variáveis. Eu fiz isso até aqui com o meu script.

Então agora eu tenho duas variáveis: total e remanescente. Ambos detêm um número seguido da letra G (de Gigabytes).

Quero remover o G rasteira e depois tome a 2 números que estão à esquerda e imprimir a diferença. What I'm stumped é sobre como remover a rasteira 'G'.

Sei que em sed, Eu poderia fazer algo assim:

new_variable \u003d `sed 's / [0-9] .* G $ / / g' `

para remover a rasteira G, mas ao meu conhecimento que você não pode passar uma variável em casca sed, Então eu não acho que teria as seguintes obras:

total \u003d `sed 's / $ (total) $ / / g' `

Então agora o meu programa tem 2 variáveis que ambos detêm um número seguido imediatamente pela letra G. Eu sei que provavelmente poderia usar corte, mas o número de caracteres é diferente em cada semana. Esta semana, total poderia ser de 4 caracteres com uma rasteira G, na próxima semana, poderá ser apenas 3. Que ferramenta posso usar para eliminar o 'G' e salvar apenas o número de volta na variável? Acho que se eu pudesse fazer isso passou essa etapa eu poderia figurar a aritmética parte fora.

Obrigado.
  #2 (permalink)  
Old 04-14-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.315
Você pode remover a rasteira personagem como segue:

Código:
sed 's/\(.*\)./\1/'
Atenciosamente
  #3 (permalink)  
Old 04-14-2008
Heathe_Kyle Heathe_Kyle is offline
Usuário
  
 

Join Date: Oct 2006
Lugares: 15
Isso fez o truque! Eu adicionei o sed comando para o final do gasoduto eu estava usando para recolher os dados. Então o meu gasoduto aparência:

Código:
df -h | grep <search string> | tail -1 | awk '{ print $2 }' | sed 's/\(.*\)./\1/'
Isso oferece exactamente o que eu tinha em mente. Obrigado!

  #4 (permalink)  
Old 04-14-2008
aigles's Avatar
aigles aigles is offline Forum Advisor  
Usuário
  
 

Join Date: Apr 2004
Location: Bordeaux, França
Mensagens: 1.426
Para o sed comando que você também pode fazer:
Código:
sed 's/.$//'
Você pode combinar grep | tail | awk |sed gasoduto em um comando awk:
Código:
df -h| awk '/search string/ {res=$2} END { sub(/.$/,"", res); print res }'
Jean-Pierre.
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:55.


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