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

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

Re: [shell-script] Copiar trecho de um arquivo para outro


From: Viktor Mota
Subject: Re: [shell-script] Copiar trecho de um arquivo para outro
Date: Sat, 29 May 2004 16:48:57 -0300

Olá ags_gallo,

sábado, 29 de maio de 2004, 15:36:20, você escreveu:

a> Caros Amigos,

a> Tenho 2 arquivo. No primeiro arquivo tenho a informação que quero para
a> incluir no segundo. Sendo que os trecho que quero do primeiro arquivo
a> encontra-se na coluna 67 (falo em coluna pois contei as colunas no
a> VI),e tenho que copiar para o segundo arquivo e coloca-lo a partir da
a> coluna 66. Gostaria de saber como faço tal procedimento.

Pelo que entendi vamos la...

ESSA É uma das formas possiveis de se fazer isso, devem existir 1001
outras, estou enviando o script comentado para que vc possa entender o
que ele esta fazendo ok.

Essa  é  forma  de  expansão de variável para selecionar uma substring
específica,  baseado  em  um  deslocamento  e comprmento de caracteres
específicos. Tente escrever as seguintes linhas no bash:

$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

Esta  forma  de  cortar  strings  é bastante útil. Basta especificar o
carcter  a  partir do qual iniciar e o comprimento da substring, todos
separados por dois pontos.


Agora um script para vc fazer o que ta querendo...

INICIO DO Script corta.sh
==========================================================================
#!/bin/sh

# Definindo variaveis....

# Variavel ARQUIVO contem o nome do arquivo que vc vai ler
ARQUIVO=nome_do_arquivo_original

# Variavel FIM contem o nome do arquivo que vc vai gerar com o script
# OBS, nao use o mesmo nome de arquivo que o original, ou vc vai perder os 
dados dele
FIM=nome_do_arquivo_destino

# Essa variavel deve ficar em branco.... estou apenas definindo-a
CORTA=

#---------  FIM DAS VARIAVEIS ----------

#limpa a tela... (eu gosto de tudo limpo)
clear

#AGORA VOU FALAR COM O SCRIPT <<<<<<<<<<
#Gosto de poder mandar nos meus scripts... eles sempre me obedecem.

#Scripty, de um cat no arquivo_original e eqto vc le cada linha
#faça a cortagem de caracteres que nao me interessam...
#apende  o  resultado da cortagem em cada nova linha da variavel CORTA
#no arquivo destino, ahhhhhh, e se ele nao existir, crie-o, isto é uma
#ordem :)

cat $ARQUIVO |
while read CORTA
do
        # Coloquei um valor grande 300, mas se for o caso aumente para
        # um valor que lhe traga o fim da linha sem perder nada...
        echo ${CORTA:67:300} >>./$FIM

        # Agora se vc quer escrever o resultado da cortagem a partir
        # do 66 caracter, comente a linha echo anterior e descomente
        # essa abaixo:
        #echo "  digite 66x espacos  " ${CORTA:67:300} >>./$FIM
done

# Redundancia... estou apenas enviando uma sinalização de que o script
# chegou ao final....
exit 0
#==========================================================================
FIM DO Script corta.sh

Como disse existe 1001 outras maneiras de fazer o que vc quer, essa eh
so  uma  e nao esta otimizada para performance... so para citar existe
outras  formas  de  fazer  o  echo  digitando 66x o espaco... AINDA TO
APRENDENDO  bash e essas coisas mais pesadas, deixo para os mestres da
lista...

Recomendo uma leitura nesses arquivos...
http://200.179.165.6/~viktor/linux/bash-1.html
http://200.179.165.6/~viktor/linux/bash-2.html
http://200.179.165.6/~viktor/linux/bash-3.html

[]s
Viktor Mota
address@hidden

--- tagline ---
Diga não às drogas, apague seu Windows.



Conheça Vitoria-ES
http://200.179.165.6/~viktor/fotos/passeios/vitoria/
http://www.vitoria.es.gov.br
















reply via email to

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