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

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

Re: [shell-script] CUT


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] CUT
Date: Wed, 16 May 2007 17:25:04 -0300

O grande problema, nesse caso, são os separadores

São Paulo Tricolor SP # 4 campos - nome ocupa 2
Sport Rubro negro PE # 4 campos - cor ocupa 2
Nautico Alvirubro PE # 3 campos

para usar o cut, seria melhor que o separador de campos fosse outro
caracter, como o tab.

mas nem tudo esta perdido, usaremos nosso bom e velho SED

#!/bin/bash
read -p "Digite o nome do Time: " TIME

echo -n "A cor desse time eh: "

if grep -q "${TIME}" arquivo ; then
    # tcharam
    sed -n "/^${TIME}\ /{s///;s/[A-Z]\{2\}$//;p}" arquivo
else
   echo "nao ha"
fi

como funciona esta linha do SED ?

sed -n "/^${TIME}\ /{s///;s/[A-Z]\{2\}$//;p}" arquivo

na linha que começar pelo nome do time e tiver um espaço em branco depois,
eu vou substituir a expressão regular utilizada pela busca (1) por nada E
vou pagar o nome do estado no final -- e imprimir o que sobrar (no caso eh a
nossa cor.

1) eu utilizo a forma abreviada de busca e substituição do sed

/expressao/s//XXX/

substitui a expressao por XXX -- no caso eu substituo por nada.

Resumindo:

uma linha com

São Paulo Tricolor SP

eu primeiro removo o nome do time, depois o estado no final e imprimo o que
sobrou.

[]´s Tiago

On 5/16/07, alisson3at110 <address@hidden> wrote:
>
>   Ola Pessoal
> Estou fazendo um script, nesse script eu irei pegar um arquivo, que
> tem colunas e linhas, como na tabela abaixo, seria criado 3 arquivos
> referentes as colunas, ele iria pedorre todos os dados e fazer um
> teste, caso verdadeiro iria mim trazer o restante das informações.
>
> Exemplo
> Quero a cor do Sport , ele irá mim trazer a cor do Sport.
> Como eu posso fazer isso, sei que irei usar o cut.
>
> Time Cor Estado
> São Paulo Tricolor SP
> Sport Rubro negro PE
> Nautico Alvirubro PE
> Ceará Alvinegro PE
>
> Alisson Alexandre
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


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



reply via email to

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