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

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

Re: [shell-script] Ajuda com montagem de script


From: Michael Costa
Subject: Re: [shell-script] Ajuda com montagem de script
Date: Tue, 8 Nov 2011 09:21:27 -0200

Muito obrigado pela ajuda pessoal =)

Obrigado Eric

Em 7 de novembro de 2011 01:14, eric miranda <address@hidden>escreveu:

> Bom dia, MIchael.
>
> Isso aqui funcionou aqui:
>
> Primeiro filtrar a saída do datapath
>
> eric@DESKTOPHOME:~$ datapath query device | grep -Ev "^[P=]|^$" | tr -s
> "/"
> ";"> datapath.txt
>
> O script
>
> eric@DESKTOPHOME:~$ cat script.sh
> #!/bin/sh
>
> while read i; do
>        COLUNA1=$(echo $i | awk '{print $1}')
>        COLUNA2=$(echo $i | awk '{print $2}')
>        COLUNA3=$(echo $i | awk '{print $3}')
>        COLUNA4=$(echo $i | awk '{print $4}')
>        COLUNA5=$(echo $i | awk '{print $5}')
>        COLUNA6=$(echo $i | awk '{print $6}')
>        COLUNA7=$(echo $i | awk '{print $7}')
>        if [ ${COLUNA1} = "SERIAL:" ]; then
>                SERIAL=${COLUNA2}
>                continue
>        fi
>        if [ ${COLUNA1} = "DEV#:" ]; then
>                VIRTUALPATH=${COLUNA5}
>                continue
>        fi
>        echo "${SERIAL};${VIRTUALPATH};${COLUNA2};${COLUNA3}"
> done < $1
>
> Testando
>
> eric@DESKTOPHOME:~$ sh script.sh datapath.txt
> 75AMXH1100B;vpath75;fscsi0;hdisk99;OPEN
> 75AMXH1100B;vpath75;fscsi0;hdisk264;OPEN
> 75AMXH1100B;vpath75;fscsi0;hdisk363;OPEN
> 75AMXH1100B;vpath75;fscsi0;hdisk438;OPEN
> 75AMXH1100B;vpath75;fscsi2;hdisk145;OPEN
> 75AMXH1100B;vpath75;fscsi2;hdisk220;OPEN
> 75AMXH1100B;vpath75;fscsi2;hdisk495;OPEN
> 75AMXH1100B;vpath75;fscsi2;hdisk570;OPEN
> 75AMXH1100C;vpath76;fscsi0;hdisk100;OPEN
> 75AMXH1100C;vpath76;fscsi0;hdisk265;OPEN
> 75AMXH1100C;vpath76;fscsi0;hdisk364;OPEN
> 75AMXH1100C;vpath76;fscsi0;hdisk439;OPEN
> 75AMXH1100C;vpath76;fscsi2;hdisk146;OPEN
> 75AMXH1100C;vpath76;fscsi2;hdisk221;OPEN
> 75AMXH1100C;vpath76;fscsi2;hdisk496;OPEN
> 75AMXH1100C;vpath76;fscsi2;hdisk571;OPEN
>
> Boa sorte!
>
> Eric Miranda
>
> Em 5 de novembro de 2011 07:04, MrBiTs <address@hidden> escreveu:
>
> > **
> >
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA256
> >
> >
> > > Conseguem montar um unico script para gerar esta saida ?
> > >
> > > Obrigado
> >
> > Acho que várias pessoas conseguem e você também consegue, mas não é bem
> > assim que o grupo funciona não. Por que não nos mostra
> > suas tentativas, não nos mostra que você fez a lição de casa ? Assim, com
> > dúvidas mais específicas, fica mais fácil ajudar você.
> >
> > Realmente, fazer para você eu não vou, mas a dica inicial é que você tem
> 3
> > tipos de linhas interessantes:
> >
> >
> > DEV#: 75 DEVICE NAME: vpath75 TYPE: 2107900 POLICY: Optimized
> > SERIAL: 75AMXH1100B
> > 0 fscsi0/hdisk99 OPEN NORMAL 60796 0
> > 1 fscsi0/hdisk264 OPEN NORMAL 47092 0
> >
> > Você quer uma saída assim:
> >
> > 75AMXH1100C;vpath75;fscsi0;hdisk99;OPEN
> >
> > Seu primeiro campo vem da linha que começa com "SERIAL", o segundo da
> > linha que começa com DEV# e o resto da linha que começa com
> > um espaço ou tab. Bem didático, algo assim funcionaria:
> >
> > cat arquivo | while read LINHA ; do
> > if [ ${LINHA} =~ "^SERIAL" ] ; then
> > # Bash 3 tem o =~, operador de comparação de expressões regulares
> > SERIAL=$(cut -d " " -f 2)
> > fi
> > done
> >
> > E aí você pega essa idéia básica e extrapola para os outros tipos de
> > linha, sempre armazenando os pedaços da linha final em
> > variáveis que depois você vai ecoar para seu arquivo final
> >
> > Outro conselho: pare com as drogas. Use LibreOffice Calc no lugar e
> Excel.
> >
> > - --
> >
> > LLAP
> >
> > .0. MrBiTs - address@hidden
> > ..0 GnuPG -
> >
> http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> > 000 http://www.mrbits.com.br
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.11 (GNU/Linux)
> >
> > iQEcBAEBCAAGBQJOtPwhAAoJEG7IGPwrPKWrBxkIAKTJ3YoxQrm7gIpa77o6ZGca
> > y3JAgnffjoyYZhjYOVy9DNsd5Q7DUcczICI2xJdQdfKIGFUn1H3Emp8toGqCL/QO
> > iewi6+ZXZpW5mDaKDJPCNYBfRoTofGR1bH7aJNRth9xuOxKMGjsCgPP0F46cwrEv
> > Iw3NPLRa/EQYm2mwiZ1rBtw3M/9c0mWpoyvOQC0RVc0aClQb3UAixxNyt5if17n7
> > 6wppWwA6urZR+AW1KgQF4yhodIBluzVFosYJ+CGxTJZVsmS4my2gw34seY1omc6D
> > FX9JyfZgc+Hd1O9eIwd6mQPSKv+S+o7Zy/gTVUTJVTfIi+/rsWxkYkMSiFyP0ZM=
> > =6OtD
> > -----END PGP SIGNATURE-----
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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