[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: controle do ponteiro de leitura de um arquivo
From: |
mop |
Subject: |
Re: controle do ponteiro de leitura de um arquivo |
Date: |
Fri, 14 Mar 2008 12:13:18 -0300 |
Salviano,
legal sua solução parametrizada.
Só para ser diferente e exercitar um pouco de shell:
com funçao
sem continue
com start
com stop opcional
permite multiplos blocos start/stop
f(){ Y=;while read L;do [ "$3" -a "$3" == "$L" ]&&Y=;[ $Y ]&&echo "$L"
[ "$2" == "$L" ]&&Y=1;done<$1;}
Onde: $1=arquivo $2=start $3=stop
Fácil adaptar para usar stdin ao invés de arquivo, daí com arquivo
poderia usar "cat arq|..."
Fácil também alterar para que linhas start e stop façam parte da saída,
start opcional, etc.
Bom para autoaprendizado, experimentando e "xeretando".
Fiz embolada de propósito, só para xeretas, nerds, hackers, ... :)
Enfim, acho que a melhor e mais agradável forma de aprendizado é a natural,
tipo criança,
e shell se aprende brincando...
EMHO (pt_BR :)
Saudações!
------------------------------------------
>From: Salviano de Araujo
>
>Aqui vai um script um pouco mais claro:
>
>#!/bin/sh
>FILE="$1"
>COND="$2"
>FLAG=1
>while read linha
>do
>if [ "$linha" = "$COND" ]
>then
>FLAG=0
>echo "FLAG alterado"
>echo "O Flag foi alterado na linha: $linha"
>elif [ $FLAG -eq 0 ]
>then
>echo "A linha desejada eh: $linha"
>FLAG=1
>fi
>done<"$FILE"
>
>
>Para verificar se duas cadeias de caracteres são idênticas usa-se o =.
Re: controle do ponteiro de leitura de um arquivo,
mop <=