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

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

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)" 

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

  • Как я могу удалить весь текст между фигурными скобками в многострочном текстовом файле?
  • сравнение 2 списков с дополнительными данными для печати
  • Разбор csv с использованием awk
  • awk: Извлечение фиксированного числа строк, в котором последнее число строк может изменяться
  • Объединить некоторые файлы с разделителями табуляции
  • Это хорошая идея для фильтрации ввода перед запуском awk-действия?
  • Назначение в фигурных скобках и внешних фигурных скобках в awk
  • Как исключить строки, которые не содержат строку из вывода скрипта awk?
  • 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 - лучшая ОС в мире.