caiobilo
(usa Outra)
Enviado em 27/12/2018 - 09:15h
Mauriciodez escreveu:
caiobilo escreveu:
Boa tarde pessoal, estou tentando criar um script que a partir de um diretório com vários arquivos faça uma leitura de arquivo por arquivo .csv e na leitura rode um awk que criei que insere um valor fixo. Depois disso mova o arquivo para outra pasta. Ou então pode ser criar outro arquivo só que com a linha alterada e em outra pasta.
Já tentei com For mas até agora não consegui o resultado esperado. Conseguem me ajudar?
v aí um exemplo e se rola de adaptar ao que vc deseja
for x in `ls *.csv`;do
echo "Texto inserido no arquivo" >> $x
mv $x /outro_lugar/$x
done
------------------------------------------| Linux User #621728 |-----------------------------------------
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
------------------------------------------| Linux User #621728 |-----------------------------------------
Mauriciodez obrigado pela ajuda. Esta maneira que fez fica bem mais facil.
Agora estou com problema no meu awk, rodando ele separado funciona perfeitamente, porém quando coloco debaixo do for da os seguintes erros
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: 5,$47,$49,$51,$53,$55,$57,$59,$61,$63,$65,$67,$69,$71,$73,$75,$77,$79,$81,$83,$85,$87,$89,$91,$93,$95,"xxxxxxx",$99,$101,$103;}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: 5,$47,$49,$51,$53,$55,$57,$59,$61,$63,$65,$67,$69,$71,$73,$75,$77,$79,$81,$83,$85,$87,$89,$91,$93,$95,"xxxxxxx",$99,$101,$103;}
O código ficou assim agora
#!/bin/bash +x
cd /beatrix/pcenter/infa_shared/teste/TgtFiles/Caio/ACCOUNT_2
x="/beatrix/pcenter/infa_shared/teste/TgtFiles/Caio/ACCOUNT_2/"
for x in 'ls UF_ACCOUNT_0*';do
awk -F"|" '{OFS="||";print $1,$3,$5,$7,$9,$11,$13,$15,$17,$19,$21,$23,$25,$27,$29,$31,$33,$35,$37,$39,$41,"20181130000000",$4
5,$47,$49,$51,$53,$55,$57,$59,$61,$63,$65,$67,$69,$71,$73,$75,$77,$79,$81,$83,$85,$87,$89,$91,$93,$95,"xxxxxxx",$99,$101,$103;}' >> "$x"
cp $x /beatrix/pcenter/infa_shared/teste/TgtFiles/Caio/ACCOUNT_2/BKP/
done