Editar começo de linhas em arquivos [RESOLVIDO]

1. Editar começo de linhas em arquivos [RESOLVIDO]

Fellype
Fellype

(usa Slackware)

Enviado em 16/03/2011 - 16:35h

Tenho um arquivo texto com n linhas, cada linha contendo um valor. Preciso adicionar ao início de cada linha um valor que segue uma fórmula do tipo constante*#linha. Como posso fazer isto utilizando shell script?

Uma outra maneira de ver o problema é a seguinte:
meu arquivo tem uma coluna com n linhas e eu preciso adicionar uma coluna antes desta. Ou seja, eu tenho uma coluna Y (eixo das ordenadas) e preciso adicionar uma coluna X (eixo das abcissas).
Desde já agradeço pela ajuda.


  


2. Re: Editar começo de linhas em arquivos [RESOLVIDO]

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 22/03/2011 - 18:27h

Se essa constante muda (:S) então você terá que usar um shell script. O sed realiza a tarefa de forma correta somente se constante é a mesma para todas as linhas:

$ sed 's/^/constante*/' arquivo.txt

O '^' indica o início da linha. Basicamente, o que o comando acima faz é: Substitua o início da linha por "constante*".

t+


3. Re: Editar começo de linhas em arquivos [RESOLVIDO]

Fellype
Fellype

(usa Slackware)

Enviado em 24/03/2011 - 12:50h

Daemonio,
Valeu pela sua dica. Ela será utilizada para outros propósitos, mas não resolve o meu problema.
Pra falar a verdade, talvez eu não tenha sido claro na minha pergunta.
Cada linha do meu arquivo é um valor numérico. E eu preciso adicionar ao início de cada linha um valor numérico que é multiplicado pelo número da linha (ou seja, constante*#linha = valor numérico).
De qualquer forma, eu consegui solucionar o problema com o seguinte script:

#!/bin/bash
i=0 # chamando a primeira linha de 0
k=0.01 # valor da constante
cat arquivo_de_entrada |
while read linha
do
x=$(echo "$i*$k" | bc)
echo "$x $linha" >> arquivo_de_saida
i=$((i+1))
done

É claro que deve existir uma outra maneira de se fazer isso, que talvez seja até melhor, mas isso é suficiente pra mim.
Té +






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts