[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Cada linha em uma nova variável...
From: |
MrBiTS |
Subject: |
Re: [shell-script] Cada linha em uma nova variável... |
Date: |
Tue, 06 May 2008 15:48:03 -0300 |
User-agent: |
Thunderbird 2.0.0.14 (Windows/20080421) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
| Olá para todos, boa tarde.
|
| Tenho dois grupos de execuções:
|
| O primeiro lista os dispositivos de disco localizados no sistema:
| fdisk -l | grep -v Disk | grep -v dm | grep /dev/ | tr -s ' ' | cut -d' '
| -f1
|
| O segundo, informa o sistema de arquivos que corresponde a cada uma da
| linhas do resultado acima:
| fdisk -l | grep -v Disk | grep -v dm | grep /dev/ | tr -s ' ' | cut -d' '
| -f6,7 | tr -d [:xdigit:] | sed 's/^ \+//'
|
| O que eu preciso é:
|
| O valor de cada uma linha gerada pelas execuções, seja copiado ou movido
| para uma nova variável (criadas conforme a quantidade de linhas que as
| execuções retornarem).
|
| Alguém tem uma idéia?
|
EM BASH, você pode trabalhar com arrays. Talvez, algo como:
COUNT=0
for X in $(fdisk -l | grep -v Disk | grep -v dm | grep /dev/ | \
tr -s ' ' | cut -d' ' -f1) ; do
COUNT=$((COUNT + 1))
echo DEV[$COUNT]=$X
done
E o resultado:
DEV[1]=/dev/hda1
DEV[2]=/dev/hda2
DEV[3]=/dev/hdb1
Para a segunda expressão, a lógica é a mesma:
COUNT=0
for X in $(fdisk -l | grep -v Disk | grep -v dm | grep /dev/ | \
tr -s ' ' | cut -d' ' -f6,7 | tr -d [:xdigit:] | \
sed 's/^ \+//') ; do
COUNT=$((COUNT + 1))
echo FS[$COUNT]=$X
done
E o resultado é:
FS[1]=Linux
FS[2]=swp
FS[3]=Linux
FS[4]=Linux
Daí para frente é com você
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFIIKfjrDdxWm3R8YYRAjq7AJ49hJ84ADbomid0Jd2azKUlLwZEbQCfcsIg
w4qHjMTEKbvdZ+pgC8t8Iv0=
=z3zd
-----END PGP SIGNATURE-----