Como formatar um arquivo enquanto se move?

3

Eu tenho dois diretórios. FONTE e DESTINO. Estou movendo os arquivos .csv da origem para o destino como

mv -f SOURCE/*.csv DESTINATION/

Durante a mudança, desejo remover a primeira e a última linha de cada arquivo no destino. Por favor me ajude com o comando.

    
por stany 19.09.2015 / 09:49

2 respostas

6

Você não pode mover um arquivo E editá-lo ao mesmo tempo, já que mover um arquivo não move fisicamente os dados (no mesmo sistema de arquivos), ele simplesmente move um ponteiro para os dados. Você pode copiar e converter os dados, excluir o arquivo original ou editar o arquivo original e movê-lo.

cd SOURCE
for i in *.csv
do
 awk 'NR>2{print s} {s=$0}' < "$i" > ../DESTINATION/"${i}"
 rm "${i}"
done

Se você omitir a linha rm, você terá a oportunidade de verificar se tudo foi convertido da maneira que deseja, antes de excluir os arquivos de origem.

    
por 19.09.2015 / 10:41
3
cd SOURCE
for i in *.csv
do
 sed -i '$d' "$i"
 sed -i '1d' "$i"
 mv "$i" DESTINATION/
done
    
por 19.09.2015 / 09:55