如何获取PDF格式的逗号分隔页面列表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取PDF格式的逗号分隔页面列表?相关的知识,希望对你有一定的参考价值。
考虑这个PDF'colorpages.pdf'链接here
我有两个命令可以知道a)我的PDF中有多少彩色页面b)使用哪种页面颜色。
对于a)我用
gs -o - -sDEVICE=inkcov colorpages.pdf | grep -v "^ 0.00000 0.00000 0.00000" | grep "^ " | wc
然后我找回一个数字(有颜色的页面总数)。
对于b)我使用
gs -o - -sDEVICE=inkcov colorpages.pdf |tail -n +5 |sed '/^Page*/N;s/
//' |sed -E '/Page [0-9]+ 0.00000 0.00000 0.00000 / d'
这给了我一个很好的颜色信息列表;例如
Page 1 0.00000 0.00000 0.00000 0.99454 CMYK OK
Page 2 0.00000 0.99228 0.00000 0.00000 CMYK OK
Page 3 0.99222 0.00000 0.00000 0.00000 CMYK OK
Page 4 0.99289 0.99289 0.99289 0.99289 CMYK OK
Page 5 0.99316 0.99316 0.00000 0.00000 CMYK OK
Page 6 0.99130 0.99130 0.99130 0.99130 CMYK OK
Page 7 0.00000 0.00000 0.00000 0.99392 CMYK OK
Page 8 0.00000 0.00000 0.00000 0.99189 CMYK OK
Page 9 0.00000 0.00000 0.00000 0.99128 CMYK OK
Page 10 0.00000 0.00000 0.98594 0.00000 CMYK OK
Page 11 0.00000 0.98908 0.98908 0.00000 CMYK OK
Page 12 0.00000 0.00000 0.00000 0.98682 CMYK OK
但我需要(另外)是使用所有页面颜色的逗号分隔列表。
跟进
命令
gs -o - -sDEVICE=inkcov colorpages.pdf |tail -n +5 |sed '/^Page*/N;s/
//' |sed -E '/Page [0-9]+ 0.00000 0.00000 0.00000 / d' | awk '$3!=0 && $4!=0 && $5!=0{if(length(colored))colored=colored","$2;else colored=$2} END{print colored}'
给我以下列表1,2,3,4,5,6,7,8,9,10,11,12
。但它应该是2,3,4,5,6,10,11。
答案
awk '$3!=0{if(length(colored))colored=colored","$2;else colored=$2} END{print colored}'
2,5,7
-->echo "$x"
Page 1 0.00000 0.00000 0.00000 0.12395 CMYK OK
Page 2 0.00016 0.00035 0.00017 0.47061 CMYK OK
Page 3 0.00000 0.00000 0.00000 0.34571 CMYK OK
Page 4 0.00000 0.00000 0.00000 0.32637 CMYK OK
Page 5 0.00016 0.00035 0.00017 0.47061 CMYK OK
Page 6 0.00000 0.00000 0.00000 0.63394 CMYK OK
Page 7 0.00016 0.00035 0.00017 0.47061 CMYK OK
echo "$x" |awk '$3!=0{if(length(colored))colored=colored","$2;else colored=$2} END{print colored}'
2,5,7
如果col 3,4,5需要0
调用一行颜色然后:(你可以玩这些条件)
awk '$3!=0 && $4!=0 && $5!=0{if(length(colored))colored=colored","$2;else colored=$2} END{print colored}'
更新:
您可以使用OR运算符(||
)来获得问题中提到的所需结果。
echo "$x" |awk '$3!=0 || $4!=0 || $5!=0{if(length(colored))colored=colored","$2;else colored=$2} END{print colored}'
2,3,4,5,6,10,11
以上是关于如何获取PDF格式的逗号分隔页面列表?的主要内容,如果未能解决你的问题,请参考以下文章