[FUG-BR] [OFF TOPIC] Shell Script

Carlos Eduardo G. Carvalho (Cartola) cartoleba em gmail.com
Quinta Janeiro 6 12:23:13 BRST 2011


O arquivo só tem uma linha mesmo? Tem mil maneiras de fazer. Podia usar awk
também. Segue um exemplo para um arquivo de 1 linha.

#!/bin/sh

# Coloca a linha na variavel LINHA sem os 3 ultimos caracteres. Se a linha
nao for certinha
# tem que mudar a expressao usada
LINHA=`cat $1 | sed 's/...$//'`

# coloque o valor inicial do numero
NUM=0

# saida com o numero incrementando
while $NUM -le 999; do
  NUM=`echo $NUM | awk '{printf "%03s", $1}'`
  echo "$LINHA$NUM"
  NUM=`expr $NUM + 1`
done

#----------------------------------------------- FIM

O script tá jogando pra saída padrão. Roda ele chamando o arquivo com a
linha e redirecionando a saída pro arquivo que quiser criar:

$ script.sh arquivo_entrada.txt > saida.txt

Não esquecendo de torná-lo executável antes ou de chamá-lo com o "sh".

Nota: não testei

Abs, Cartola.

Em 6 de janeiro de 2011 12:04, Paulo Henrique BSD Brasil <
paulo.rddck em bsd.com.br> escreveu:

> O que precisa é do comando set , foreach e incremento(++) ambos são
> discriminados na man do csh, um material simples na internet sobre C
> shell já é o suficiente para resolver o seu problema.
>
> At...
>
> Em 6/1/2011 11:43, CDMB . escreveu:
> > Bom dia pessoal.
> > Gostaria que alguém me ajudasse a concluir um script que estou tentando
> > criar aqui.
> > Eu tenho um arquivo com uma linha terminada com um número tipo:
> > "Lorem ipsum dolor sit amet, consectetur adipiscing elit001".
> > O que eu queria era repetir a linha  e alterar os últimos 3 dígitos.
> >
> > Lorem ipsum dolor sit amet, consectetur adipiscing elit002
> > Lorem ipsum dolor sit amet, consectetur adipiscing elit003
> > ...
> > ...
> > Lorem ipsum dolor sit amet, consectetur adipiscing elit999
> >
> > Desde já agradeço.
> >
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


Mais detalhes sobre a lista de discussão freebsd