The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

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
Seqüência manipulação utilizando ksh Zambo UNIX para Dummies Perguntas & Respostas 5 09-18-2008 02:25
Seqüência manipulação no TCL jehrome_rando Programação Shell Script e 1 07-15-2008 09:23
Como usar o sed manipulação de string hikrishn Programação Shell Script e 2 06-16-2008 12:43
Seqüência manipulação jerrynimrod Programação Shell Script e 2 06-05-2008 12:06
Seqüência manipulação mr_bold UNIX para Dummies Perguntas & Respostas 2 02-14-2007 07: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 11-20-2008
illcar illcar is offline
Usuário
  
 

Join Date: Nov 2008
Posts: 9
string manipulação questão

Tenho que me dá myMethod disponíveis, utilizado, espaço livre em disco, em KB. I analisar a utilização de espaço em disco usando awk. Isso dá-me algo como 830.016. Eu quero ser a saída para 830.016, para que eu possa acrescentar 100.000 para ela. Em outras palavras, gostaria de usar used_space variável em cálculos numéricos (usando expr).

Código:
.....
myMethod
used_space="`myMethod | grep sum | awk -F' ' '{print $3}'`"
echo $used_space
echo ${used_space/,/}
Mas a última linha acima me dá erro:
Código:
sum                 1,977,920      830,016    1,147,904
830,016
./test.sh: bad substitution
O que posso fazer? Se eu faço a mesma coisa na linha de comando que funciona bem!
Código:
bash-3.00# export abc=830,123
bash-3.00# echo ${abc/,/}
830123
bash-3.00#
  #2 (permalink)  
Old 11-20-2008
danmero danmero is online now Forum Advisor  
  
 

Join Date: Nov 2007
Localização: 45,48-73,63
Mensagens: 1.428
Citação:
Originally Posted by illcar View Post
Código:
used_space="`myMethod | grep sum | awk -F' ' '{print $3}'`"
Awk Vamos fazer o trabalho e não ficar complicado.
Código:
used_space=`myMethod | awk '/sum/{gsub(/,/,"");print $3}'`
  #3 (permalink)  
Old 11-20-2008
alex_5161 alex_5161 is offline
Usuário
  
 

Join Date: Jan 2007
Localização: Detroit
Lugares: 124
Acho que você havn't especificar o reservatório no script. (Não lembro como a linha que tem o nome ..)
Primeira linha no script
Código:
#! /usr/bin/bash
por exemplo.

Em bash ele funciona bem, mas eu tenho experimentado isso em ksh:
Código:
> ec $used_space
830,016
> ec ${used_space/,/}
ksh: ${used_space/,/}: bad substitution
>
  #4 (permalink)  
Old 11-21-2008
illcar illcar is offline
Usuário
  
 

Join Date: Nov 2008
Posts: 9
Lamento, mas ainda estou tendo problemas. Mudei o código da seguinte forma:

Código:
 
myMethod
used=`myMethod | awk '{gsub(/,/,""); print $3}'`
echo $used
Agora eu recebo um erro diferente. Se não for claro o que pode estar errado, qualquer ponteiros para depuração awk seria apreciada.

Código:
 
bash-3.00# ./test.sh 
sum                 1,977,920      795,648    1,182,272
awk: syntax error near line 1
awk: illegal statement near line 1
bash-3.00# stty: : I/O error
A primeira linha do script é:
Código:
 
#!/bin/sh
  #5 (permalink)  
Old 11-21-2008
alex_5161 alex_5161 is offline
Usuário
  
 

Join Date: Jan 2007
Localização: Detroit
Lugares: 124
problema é o seguinte:
1: 'awk' não sabe a função 'gsub () »
utilização »nawk '
2: por que você não altere o 'sh' para 'bash' - tudo será mais simples
  #6 (permalink)  
Old 11-24-2008
illcar illcar is offline
Usuário
  
 

Join Date: Nov 2008
Posts: 9
Citação:
Originally Posted by alex_5161 View Post
problema é o seguinte:
1: 'awk' não sabe a função 'gsub () »
utilização »nawk '
2: por que você não altere o 'sh' para 'bash' - tudo será mais simples
Obrigado, nawk fez o truque.
Closed Thread

Marcadores

Tags
shell script, shell script, unix script, unix script básico

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:31.


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