преобразуйте объем текстовых файлов к PDF с именованием основанного на заголовочном файле

Я имел потребность переслать почту корня, зашифрованную также, и суммировал мои результаты здесь: http://www-public.it-sudparis.eu/~berger_o/weblog/2006/01/20/secure-forwarding-of-roots-mail-through-gpg/

Возможно, это может решить Ваши потребности также.

4
28.03.2018, 14:13
2 ответа

Если у Вас есть относительно простое дерево файла, где у Вас есть только один уровень каталогов, и где каждый каталог содержит список файлов, но нет никаких подкаталогов, необходимо смочь сделать что-то вроде этого (можно вставить это непосредственно в терминал и совершить нападки, Входят):

for dir in *; do    ## For each directory
 if [ "$(ls -A "$dir")" ]; then  ## If the dir is not empty
   for file in "$dir"/*; do      ## For each file in $dir
    i=0;                         ## initialize a counter
    ## Get the subject
    sub=$(grep ^Subject: "$file" | cut -d ':' -f 2-);
    ## get the date, and format it to MMDDYY_Hour:Min:Sec
    date=$(date -d "$(grep ^Date: $file | cut -d ':' -f 2-)" +%m%d%y_%H:%M:%S);
    ## the pdf's name will be <directory's name> _ <date> _ <subject>
    name="$dir"_"$date"_"$sub";
    ## if a file of this name exists
    while [ -e "$dir/$name".pdf ]; do
      let i++;                       ## increment the counter
      name="$dir"_"$date"_"$sub"$i;  ## append it to the pdf's name
    done;
    wkhtmltopdf "$file" "$dir"/"$name".pdf; ## convert html to pdf
  done
 fi
done

Примечания

  • Это решение требует wkhtmltopdf:

    Простая утилита оболочки для преобразования HTML в PDF с помощью механизма визуализации WebKit и QT.

    В базирующихся системах Debian можно установить его с

    sudo apt-get install wkhtmltopdf
    
  • Это предполагает, что нет никаких файлов в высокоуровневом каталоге и только желаемых файлов HTML во всех подкаталогах.

  • Это может иметь дело с именами файлов и именами каталогов, которые содержат пробелы, новые строки и другие неортодоксальные символы.

  • Учитывая файл dir1/foo с содержанием примера Вы отправили, он создаст названный файл dir1/dir1_020513_20:59:53_Civilized Discourse Construction Kit10.pdf

2
27.01.2020, 21:00

Вы всегда можете использовать страницу Название для имени Конвенция, поэтому он должен быть уникальным.

Данный файл со списком адресов, вот одноклассник:

while read url; do wkhtmltopdf $url "$(curl -s $url | grep -o "<title>[^<]*" | tail -c+8).pdf"; done < urls.lst

где URLS.LST - ваш файл со списком URL.

0
27.01.2020, 21:00

Теги

Похожие вопросы