Trocar string de um arquivo

1. Trocar string de um arquivo

Rafael
arnok

(usa Outra)

Enviado em 12/04/2012 - 13:06h

Pessoal boa tarde!

Estou com o seguinte problema, tenho dois arquivo um de histórico e outro com um dexpara de matriculas.
No histórico tenho o seguinte tipo de linha:

22XX126086|ONL|EL21351|MAR-23-2012 10:23:19|ONL_PASS|MAY-16-2011 12:48:27|ADMIN|0||||2.00|||||||||||||||||||!##!

Preciso trocar está matricula pela a equivalente que se encontra em outro arquivo. Exemplo
22XX126086|22XX2152

a antiga vem primeira e a nova é a segunda.

Fiz o seguinte script:

#!/bin/bash

cat matriculas.txt | while read line
do
# Velha matricula
echo $line | cut-c -|
read str

# Nova matricula
echo $line | cut-c |-
read rpl

# Nome do arquivo
echo "learninghistory.txt"
read files

for i in `ls *$files*`
do
awk '{ sub(/'$str'/,"'$rpl'",$0); print $0}' $i >> temp
mv temp $i
done
done


Porém não está funcionando poderiam me ajudar?

Abraços!


  


2. Re: Trocar string de um arquivo

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 12/04/2012 - 14:47h


Primeira coisa ... acho que o correto das variáveis seria assim:

str=`echo $line | cut -d\| -f1`
rpl=`echo $line | cut -d\| -f1`
files="learninghistory.txt"



3. Re: Trocar string de um arquivo

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 12/04/2012 - 14:55h

cat matriculas.txt |while read line
do
str=`echo $line | cut -d\| -f1`
rpl=`echo $line | cut -d\| -f1`
files="learninghistory.txt"
sed -i "s/^$str/$rpl/" *$files*
done



4. Re: Trocar string de um arquivo

Rafael
arnok

(usa Outra)

Enviado em 12/04/2012 - 15:28h

fdmarp escreveu:

cat matriculas.txt |while read line
do
str=`echo $line | cut -d\| -f1`
rpl=`echo $line | cut -d\| -f1`
files="learninghistory.txt"
sed -i "s/^$str/$rpl/" *$files*
done


Muito obrigado! Só mais um dúvida:
str=`echo $line | cut -d\| -f1`
rpl=`echo $line | cut -d\| -f1`
irão pegar o mesmo valor correto? Meu arquivo de matriculas é do seguinte padrão 22XX123136|22XX98636 sendo que iremos procurar o 22XX123136 e trocar ele por 22XX98636.

Abraços!




5. Re: Trocar string de um arquivo

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 12/04/2012 - 16:08h

falha minha

rpl=`echo $line | cut -d\| -f2`






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts