Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

1. Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 18/10/2016 - 15:13h

Boa tarde pessoal,

Queria uma ajuda sobre como substituir um determinado número que está no meu arquivo por outro número, esse número que quero substituir está na minha primeira linha e na coluna 7, queria substituir esse valor por um valor que esta em outro arquivo meu.

Exemplifico:

Arquivo 1:
metanol_HF_3-21 H2_HF_3-21G1 TS_HF_321G CH3O_HF_321G H2_HF_3-21G -115.52484800 -114.91877400 7.5 1.0000000

Arquivo 2: -113.6793037

O que eu quero é substituir o valor -114.91877400 por -113.6793037 , porém esses valores variam, por isso preciso de um comando que consiga pegar o valor da coluna 7 do arquivo 1 e substituir pelo valor que está no arquivo 2.

Grato!


Att, Flávio Olimpio


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/10/2016 - 18:05h

flavio_olimpo escreveu:

Boa tarde Marcelo,

O separador de campos é o espaço, apenas um espaço.


=====================================================
Estava somente aguardando a confirmação . . .
A lógica é:
"PEGA" a LINHA 01 do ARQUIVO_01
"PEGA" a LINHA 01 do ARQUIVO_02 # CAMPO_NOVO
TROCA o CAMPO_06 PELO CAMPO_NOVO
Segue:


#!/bin/bash
while IFS=" " read -r CP01 CP02 CP03 CP04 CP05 CP06 CP07 CP08;do
let COUNT++
CPNV=$(sed -n "${COUNT}p" ARQUIVO2)
sed -i ''$COUNT's/'$CP06'/'$CPNV'/' ARQUIVO1
done<ARQ.txt


CONFORME AS REGRAS DO FÓRUM:
Se você sanou sua dúvida ou resolveu um problema a partir de um tópico criado,
é extremamente recomendável que acesse o tópico e marque-o como "RESOLVIDO".
E mais recomendável ainda que você eleja como melhor resposta a que mais lhe ajudou.

Att.:
Marcelo OLiver



3. Re: Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/10/2016 - 16:36h

flavio_olimpo escreveu:

Boa tarde pessoal,

Queria uma ajuda sobre como substituir um determinado número que está no meu arquivo por outro número, esse número que quero substituir está na minha primeira linha e na coluna 7, queria substituir esse valor por um valor que esta em outro arquivo meu.

Exemplifico:

Arquivo 1:
metanol_HF_3-21 H2_HF_3-21G1 TS_HF_321G CH3O_HF_321G H2_HF_3-21G -115.52484800 -114.91877400 7.5 1.0000000

Arquivo 2: -113.6793037
O que eu quero é substituir o valor -114.91877400 por -113.6793037 , porém esses valores variam, por isso preciso de um comando que consiga pegar o valor da coluna 7 do arquivo 1 e substituir pelo valor que está no arquivo 2.

Grato!
Att, Flávio Olimpio

=================================
Boa tarde Flavio.
Qual o "IFS" no Arquivo 1?

marcelo oliver




4. Re: Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 18/10/2016 - 17:43h

Boa tarde Marcelo,

O separador de campos é o espaço, apenas um espaço.




5. Re: Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/10/2016 - 20:05h

Por NADA, flavio_olimpo!
Precisando . . . .
Estarei sempre disposto a ajudar.
Independentemente do RECONHECIMENTO alheio.

Termos de uso
.
.
.
Educação e cortesia
Você deve respeitar regras básicas de educação.
"Olá" no início do assunto e um agradecimento ao ser respondido fomenta a boa vontade de nossos membros em ajudá-lo.

Att.:
Marcelo Oliver





6. Re: Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 18/10/2016 - 20:15h

Boa noite Marcelo,

Você poderia me explicar cada comando desse, para que eu entenda e possa manipular depois, por que o script não dá erro, mas não sobrescreve nada no ARQ.txt

Grato!


7. Re: Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 18/10/2016 - 20:20h

Olá Marcelo,

Eu não respondia e não marcava por que não sabia onde ficava essas funcionalidades, mas estou cada dia aprendendo mais no grupo e a cordialidade também acompanha o conhecimento, fico muito grato com todos as dúvida esclarecidas, está me ajudando muito.


8. Re: Substituir um número de uma coluna de um arquivo por um número de outro arquivo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 00:19h

flavio_olimpo escreveu:
Boa noite Marcelo,
Você poderia me explicar cada comando desse, para que eu entenda e possa manipular depois, por que o script não dá erro, mas não sobrescreve nada no ARQ.txt
Grato!


Boa noite Flavio.
Eu errei, alterei o script para testar e esqueci de voltar ao original . . . É a IDADE . . .
FOI CORRIGIDO. Tem uma pequena alteração, você deve definir os ARQUIVOS em ARQ01 e ARQ02
Descrição das LINHAS do SCRIPT:
#!/bin/bash
#DEFINA OS ARQUIVOS ABAIXO, ARQ01 e ARQ02
#ARQ01 TEM VÁRIOS CAMPOS
ARQ01=""
#ARQ02 TEM 01 CAMPO
ARQ02=""
#Lê LINHA a LINHA do ARQUIVO especificado, e atribui o valor de CADA CAMPO p/ as VARS CP01 . . . CP08
while IFS=" " read -r CP01 CP02 CP03 CP04 CP05 CP06 CP07 CP08;do
#Acrescenta 1 em COUNT
let COUNT++
#Atribui o conteúdo da LINHA Nº $COUNT de ARQ02, p/ a VAR CPNV (CAMPO NOVO)
CPNV=$(sed -n "${COUNT}p" "$ARQO2")
#Troca "$CP06" por "$CPNV" e "GRAVA" no "$ARQ01"
sed -i ''$COUNT's/'$CP06'/'$CPNV'/' "$ARQO1"
#Encerra o LAÇO "while" e define o ARQUIVO onde serão "pegos" os CAMPOS
done<"$ARQ01.txt

É isso...
E NãO ESQUEÇA . . .
Se a RESPOSTA sanou suas duvidas, marque-a como A MELHOR . . . Rsrsrsr

Abç.:
Marcelo Oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts