como criar script de manifesto

1

Estou tendo uma lista de arquivos em um diretório como

sales_01
product_01

e estou criptografando esses arquivos no mesmo diretório. Agora estou tendo lista de arquivos como

sales_01
product_01
sales_01.gpg
product_01.gpg

Agora, minha pergunta é que tenho que criar o arquivo de manifesto que está tendo a coluna. aspas duplas devem apresentar

"original_filename" "original_filesize" "encrypted_filesize" "md5sum(value of encrypted file)"

Por favor me ajude a resolver isso.

    
por Saheen 12.05.2017 / 14:53

2 respostas

0

Bem, não é muito bonito, mas isso deve funcionar.

for i in $(ls | cut -d. -f1 | uniq); do if [ -f $i.gpg ]; then base_size=$(ls  -al $i| cut -d" " -f5); gpg_size=$(  ls  -al $i.gpg| cut -d" " -f5); md5_sum=$(md5sum $i.gpg | awk '{ print $1 }') ; echo  $i $base_size $gpg_size $md5; fi; done
    
por 12.05.2017 / 15:31
0

Suponho que seus nomes de arquivos não tenham novas linhas incorporadas.

No Linux:

#! /usr/bin/env bash
find /some/dir -type f -maxdepth 1 \! -name '*.gpg' | \
while read -r f; do
    esc=${f##*/}
    esc=${esc//\/\\}
    esc=${esc//\"/\\"}
    md5=$(md5sum "$f".gpg | awk '{print $1}')
    printf '"%s" "%d" "%d" "%s"\n' "$esc" $(stat -c %s "$f") $(stat -c %s "$f".gpg) "$md5"
done

Em * BSD:

#! /bin/sh
find /some/dir -type f -maxdepth 1 \! -name '*.gpg' | \
while read -r f; do
    esc=$(printf '%s\n' "$f" | sed 's#.*/##; s/\([\"]\)/\/g')
    md5=$(md5 -q "$f".gpg)
    printf '"%s" "%d" "%d" "%s"\n' "$esc" $(stat -f %z "$f") $(stat -f %z "$f".gpg) "$md5"
done
    
por 13.05.2017 / 08:21

Tags