Получить разделенный запятыми список цветных страниц в PDF

325
wittich

Как получить разделенный запятыми список всех цветных страниц в моем файле PDF?

Благодаря этому ответу я могу получить список всех номеров страниц и заметку для цветной страницы.

gs -o - -sDEVICE=inkcov input.pdf | grep -v "^ 0.00000 0.00000 0.00000" | \ grep "^ \|^Page" 

Выход будет:

Page 1 0.16646 0.16261 0.14122 0.13507 CMYK OK Page 2 Page 3 0.48488 0.48728 0.48794 0.16678 CMYK OK Page 4 0.47346 0.47703 0.47624 0.46490 CMYK OK Page 5 

Как изменить вывод, чтобы в списке, разделенном запятыми, отображались только страницы с цветом?

Результат должен выглядеть примерно так:

1, 3, 4 
0

1 ответ на вопрос

0
wittich

Хорошо, я нахожу способ создать разделенный запятыми список цветных страниц в PDF:

gs -o - -sDEVICE=inkcov test.pdf | \ grep -v "^ 0.00000 0.00000 0.00000" | \ grep "^ \|^Page" | \ paste -sd, | \ grep -Eo '[0-9], ' | \ tr -d '\n' 

Вероятно, не самый элегантный способ, но это работает.

Код делает следующее:

  • принимает тот же результат, что и в вопросе выше, и заменяет новые строки запятой

    paste -sd, 
  • чем искать номера от 1 до 999, за которыми следуют запятая (новая строка с повторением) и пустой пробел, поскольку примечание цвета всегда начинается со знака пробела

    grep -Eo '[0-9], '` 
  • в конце он снова удаляет новые строки из вывода.

    tr -d '\n' 
  • Результат будет:

    1, 3, 4,

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