Как обработать несколько файлов с Pandoc?

cat  $(grep '^include' file.txt | cut -d" " -f2); grep -v '^include' file.txt

Первая команда grep строку, начинающуюся с include в file.txt, cut часть имени файла и затем cat его.

Следующая команда выведет все строки, кроме строки, начинающейся с include в file.txt

2
28.10.2018, 16:56
2 ответа

Грубо,

#!/bin/sh

set -- *.md
while [ $# -gt 0 ]
do
  pandoc "${1} -f markdown ${1%.md}.pdf" &
  shift
  if [ $# -gt 0 ]
  then
    pandoc "${1} -f markdown ${1%.md}.pdf" &
    shift
  fi
  wait
done

С xargs:

find. -type f -name '*.md' -print0 | xargs -0 -n2 -P2 -I{} pandoc {} -f markdown {}.pdf

вам придется переименовать их впоследствии, так как приведенное выше приведет к файлам с именами a.md.pdf, b.md.pdf и т. д. Обратите внимание, что в целях безопасности с именами файлов мы просим findраспечатать нулевые -разделенные имена файлов и запрос xargsна чтение в нулевом -разделенном вводе. Переименуйте файлы с помощью:

for f in./*.md.pdf; do mv -- "${f}" "${f%.md.pdf}.pdf"; done
2
27.01.2020, 22:02

Это может сработать:

parallel pandoc {} -f markdown {.}.pdf ::: *.md

Если вы не хотите запускать одно задание для каждого потока ЦП, а хотите принудительно выполнить 2 задания параллельно:

parallel -j2 pandoc {} -f markdown {.}.pdf ::: *.md

Вы можете потратить 15 минут на чтение глав 1+2 книги GNU Parallel:http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html(Печатная ),https://doi.org/10.5281/zenodo.1146014(Интернет ).

2
27.01.2020, 22:02

Теги

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