как создать скрипт манифеста

У меня есть список файлов в каталоге, например

sales_01 product_01 

и я шифрую эти файлы в том же каталоге. Теперь у меня есть список файлов, таких как

 sales_01 product_01 sales_01.gpg product_01.gpg 

Теперь мой вопрос: я должен создать файл манифеста, который имеет столбец. двойные кавычки должны присутствовать

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

Пожалуйста, помогите мне решить эту проблему.

  • Как найти и фильтровать определенный столбец в CSV-файле?
  • Обновите значения файла, используя информацию из другого файла
  • Regex awk для интерфейса Cisco
  • Как разбить файл, чередуя префикс, используемый для выходных файлов?
  • Как извлечь первое целое из текстовой строки в столбце файла с разделителями табуляции?
  • разделитель полей awk + count в csv и номер строки печати
  • Вставьте новую строку после разбитой последовательности чисел awk / unix / shell scripting
  • как извлечь значение из строки в xml с помощью grep или awk в Linux
  • 2 Solutions collect form web for “как создать скрипт манифеста”

    Ну, это не очень красиво, но это должно сработать.

     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 

    Я предполагаю, что ваши имена файлов не имеют встроенных строк перевода.

    В Linux:

     #! /usr/bin/env bash find /some/dir -type f -maxdepth 1 \! -name '*.gpg' | \ while read -rf; 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 

    On * BSD:

     #! /bin/sh find /some/dir -type f -maxdepth 1 \! -name '*.gpg' | \ while read -rf; do esc=$(printf '%s\n' "$f" | sed 's#.*/##; s/\([\\"]\)/\\\1/g') md5=$(md5 -q "$f".gpg) printf '"%s" "%d" "%d" "%s"\n' "$esc" $(stat -f %z "$f") $(stat -f %z "$f".gpg) "$md5" done 
    Linux и Unix - лучшая ОС в мире.