Как получить разделенный запятыми список всех цветных страниц в моем файле 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

1 ответ1

0

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

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

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

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

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

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

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

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

    1, 3, 4,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .