Erhalten Sie eine durch Kommas getrennte Liste von Farbseiten in PDF

480
wittich

Wie erhalte ich eine durch Kommas getrennte Liste aller Farbseiten in meiner PDF-Datei?

Dank dieser Antwort kann ich eine Liste aller Seitennummern und eine Notiz für eine Farbseite erhalten.

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

Die Ausgabe wäre:

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 

Wie kann ich die Ausgabe so ändern, dass nur die Seiten mit Farbe in einer durch Kommas getrennten Liste angezeigt werden?

Das Ergebnis sollte ungefähr so ​​aussehen:

1, 3, 4 
0

1 Antwort auf die Frage

0
wittich

Okay, ich finde einen Weg, eine durch Kommas getrennte Liste der Farbseiten in einem PDF zu generieren:

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' 

Wahrscheinlich nicht der eleganteste Weg, aber es funktioniert.

Der Code bewirkt Folgendes:

  • nimmt die gleiche Ausgabe wie in der obigen Frage und ersetzt die neuen Zeilen durch ein Komma

    paste -sd, 
  • Dann wird nach Zahlen zwischen 1 und 999 gesucht, gefolgt von einem Komma (der neuen Zeile) und einem leeren Leerzeichen, da die Farbnotiz immer mit einem leeren Leerzeichen beginnt

    grep -Eo '[0-9], '` 
  • Am Ende werden die neuen Zeilen wieder aus der Ausgabe entfernt.

    tr -d '\n' 
  • Das Ergebnis wäre:

    1, 3, 4,