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

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

RE: [shell-script] Processamento de lista de tarefas


From: Marcio Gil
Subject: RE: [shell-script] Processamento de lista de tarefas
Date: Wed, 21 Apr 2010 09:07:37 -0300

Júlio, é isso mesmo. Recalcular os índices das tarefas? Idéia
interessante, teoricamente tem que bater com a lista gerada.

O único problema é que na prática a árvore de tarefas chega a dez
níveis, o script vai ficar um pouco grande...

A script em awk que eu havia feito não considerava mais de 9
tarefas em um nível, então eu refiz e coloquei em um arquivo:

#!awk -f
/^ *[0-9]*\./{
  n=match($0,"[0-9]+.")
  p=index($0,".")
  i=(n-1)/2
  a[i]=substr($0,n,p+1-n)
  for (j=0;j<=i;j++){
    printf a[j]
  }
  print substr($0,p+1)
}


> -----Original Message-----
> From: Julio C. Neves
> 
> Marcio,
> vê se é isso. Vou montar a lista dentro de uma variável,
> indentando:
> Lista="1. Desenho
>   1. Sistema de coordenadas
>     1. Criar o método X()
>     2. Criar o método Y()
>   2. Primitivas gráficas
>     1. Desenho de linhas
>     2. Desenho de quadrados
> 2. Etc"
> 
> Mudando o IFS:
> IFS='
> '
> 
> O programa propriamente dito:
> while read linha
> do
>     sp=$(grep -oE '^ +' <<< "$linha")
>     case "${#sp}" in
>         0) ind=$[++ind1].
>            ind2=
>            ind3=
>            ;;
>         2) ind=$ind1.$[++ind2].
>            ind3=
>            ;;
>         4) ind=$ind1.$ind2.$[++ind3].
>     esac
>     echo $ind$(cut -f2- -d. <<<"$linha")
> done <<< $Lista
> 
> Abraços,
> Julio
> Cursos de Shell e Zenity em 2 fins de semana?
> - Aracaju turma de Shell em 12/05 - address@hidden;
> - RJ turma de Shell em 14/06 - ligue (21)2210-6061;
> - Turmas fechadas em outras cidades ligue (21)  8112-9988.
> 
> 
> Em 20 de abril de 2010 22:14, Marcio Gil 
> <address@hidden> escreveu:
> 
> >
> >
> > Na verdade o que determina o nível é a endentação, ou seja,
> > os espaços no início da linha. Os termos "Projeto", "Tarefa"
> > e "sub-tarefa" são só para exemplificar, poderiam ser
> > qualquer outra coisa.
> >
> > Desculpe se não consegui ser mais claro. Vou dar outro
> > exemplo com os espaços indicados por <SP> (acredito que o meu
> > e-mail tenha chegado sem eles :-)
> >
> > 1. Desenho
> > <SP><SP>1. Sistema de coordenadas
> > <SP><SP><SP><SP>1. Criar o método X()
> > <SP><SP><SP><SP>2. Criar o método Y()
> > <SP><SP>2. Primitivas gráficas
> > <SP><SP><SP><SP>1. Desenho de linhas
> > <SP><SP><SP><SP>2. Desenho de quadrados
> > 2. Etc.
> >
> > Deveria ficar:
> >
> > 1. Desenho
> > 1.1. Sistema de coordenadas
> > 1.1.1. Criar o método X()
> > 1.1.2. Criar o método Y()
> > 1.2. Primitivas gráficas
> > 1.2.1. Desenho de linhas
> > 1.2.2. Desenho de quadrados
> > 2. Etc.
> >
> > No caso talvez eu pudesse utilizar as expressões regulares:
> >
> > '^[0-9]' para o nível 0
> > '^ [0-9]' para o nível 1
> > '^ [0-9]' para o nível 2
> > '^ [0-9]' para o nível 3
> > '^ [0-9]' para o nível 4
> >
> > e assim por diante. Provavelmente eu tenha mesmo que criar um
> > laço "for" com vários "if"s, porém vou ver se consigo alguma
> > coisa menor com o awk.
> >
> > Abraços,
> >
> > Marcio Gil.
> >
> 



reply via email to

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