shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: explode() em shell?!?!


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Re: explode() em shell?!?!
Date: Tue, 25 Jul 2006 00:52:35 -0300

Basicamente

VARIAVEL="uma grande sequencia de palavras"

set - $VARIAVEL

echo $1  informa 'uma'
echo $#  informa 5 - numero de palavras
echo $@ informa a frase toda

$1 .. $9 normalmente é usado para ler os argumentos de um script ou
função shell. quando vc faz set - vc 're-le' estas informações e passa
a usa-las da mesma forma.

cada variavel $x pega uma palavra, uma palavra é definida como uma
porção de caracteres que esteja separado por algum caracter da
variavel de ambiente IFS (no caso, espaço em branco, tab e caracter
nova linha).

( não descobri uma forma de escapar o delimitador ainda dentro da variavel )

Caso vc tenha informações separadas por outros caracteres, como o ;
basta vc redefinir temporariamente a IFS

$ VAR="oi;tudo;bom;como;vai;vc"
$ OLDIFS=$IFS
$ IFS=';'
$ set - $VAR
$ IFS=$OLDIFS
$ echo $1
oi

a IFS é uma variavel importante, não é bom ficar alterando ela sem
voltar ao que era... ;-)

pra fazer o mesmo em awk basta fazer:

$ echo "oi;tudo;bom;como;vai;vc" | awk -F';' '{print $1}'
oi

On 7/24/06, Reinaldo Carvalho <address@hidden> wrote:
Oi tiago,
podes da um exemplo do que isso faz?
On 7/24/06, Tiago Barcellos Peczenyj <address@hidden> wrote:
> set - $VARIAVEL


reply via email to

[Prev in Thread] Current Thread [Next in Thread]