Sida 1 av 1

Räkna antalet pdf-sidor inuti filerna (statistik)?

Postat: 24 sep 2011, 23:19
av ZX Spectrum
Jag har skannat en massa sidor med musiknoter som vi har i orkesterarkivet (bevara för eftervärlden) och ordnat detta så varje musikinstrument har sin egna pdf-fil som kan innehålla x antal sidor.

Mappträdet ser ut på följande sätt:

Salongsorkestern/Ouvertyrer/melodi/trumpet.pdf
Salongsorkestern/Ouvertyrer/melodi/violin.pdf
Salongsorkestern/Ouvertyrer/melodi/bas.pdf
Salongsorkestern/Ouvertyrer/melodi/piano.pdf
Salongsorkestern/Valser/melodi/trumpet.pdf
Salongsorkestern/Valser/melodi/violin.pdf
Salongsorkestern/Valser/melodi/bas.pdf
Salongsorkestern/Valser/melodi/piano.pdf

Jag har hittat ett skript som fixar hur många sidor varje stämma innehåller med hjälp av pdfinfo men vill gärna ha summan av antalet också.

Skriptet:

Kod: Markera allt

#!/bin/sh
for f in */*/*.pdf; do
        echo -n "$f: "
        pdfinfo "$f" 2>/dev/null | grep Pages | cut -d ":" -f 2
done
och resultatet blir ungefär så här nu:

Kod: Markera allt

Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Piano.pdf:           15
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Slagverk.pdf:           6
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Trombone 1 och 2.pdf:           4
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Trombone 3.pdf:           4
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Trumpet 2 (Bb).pdf:           4
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Viola.pdf:           4
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Violin 1.pdf:           6
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Violin 2.pdf:           6
Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Violin obligat.pdf:           6
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Cello.pdf:           4
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Fagott 1.pdf:           4
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Fagott 2.pdf:           4
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Flöjt 1.pdf:           4
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Flöjt 2 (Piccola).pdf:           3
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Harmonium.pdf:           7
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Harpa.pdf:           3
Valser/Va 001 - Wenn die füsschensie heben (O Fetris)/Horn 1 och 2 (F).pdf:           4
Jag skulle vilja ha summan av sidor/låt och totala antalet sidor om man summerar samtliga låtars sidor.
Är detta möjligt på ett lätt sätt?

Re: Räkna antalet pdf-sidor inuti filerna (statistik)?

Postat: 24 sep 2011, 23:59
av David Andersson
Menar du sånt här kommando

Kod: Markera allt

for f in */*/*.pdf; do echo "$f"; pdfinfo "$f"; done | awk 'BEGIN{print "Sidor\tFilnamn"; print "-------"} /\.pdf$/{file=$0} /Pages:/{tot+=$NF;print $NF"\t"file} END{print "-------"; print tot"\ttotal"}'
med sånhär output

Kod: Markera allt

Sidor	Filnamn
-------
15	Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Piano.pdf
6	Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Slagverk.pdf
4	Ouvertyrer/Ouv 023 - Wienerblut (Johann Strauss)/Trombone 1 och 2.pdf
-------
25	total
I så fall säg till så ska jag se vad jag kan göra.

Re: Räkna antalet pdf-sidor inuti filerna (statistik)?

Postat: 25 sep 2011, 00:03
av gusnan
Nåt sånthärnt?

Kod: Markera allt

#!/bin/bash
shopt -s nullglob

total=0

for f in *.pdf
do
        temp=`pdfinfo "$f" 2>/dev/null | grep Pages | cut -d ":" -f 2`
		  
		  let total=`expr $total`+`expr $temp`
done

echo "Total:$total"

Re: Räkna antalet pdf-sidor inuti filerna (statistik)?

Postat: 25 sep 2011, 00:33
av ZX Spectrum
Något i denna stilen menar jag. Fick fram den totala sidmängden till 2074 sidor med båda era exemplen.
Ändrade till */*/*.pdf i davids exempel.

Jag har skannat in 22 låtar i nuläget och vill ha dessa uppradade en efter en med antalet sidor varje låt innehåller.

Skulle kunna tänka mig något i denna stilen:

låt 1: 107
låt 2: 98

Re: Räkna antalet pdf-sidor inuti filerna (statistik)?

Postat: 30 okt 2011, 21:11
av ZX Spectrum
Jag insåg nu att mitt script inte fungerar om jag inte har pdf-filerna under samma mappnivå.
Exempelvis om jag har /mappnamn/mappnamn/dokument.pdf så fungerar det inte om jag gör ytterligare en mapp /mappnamn/mappnamn/mappnamn/dokument.pdf

Kan jag räkna pdf-sidorna i en viss mapp utan att det spelar någon roll hur mappstrukturen ser ut under denna mapp?

Kod: Markera allt

#!/bin/bash
shopt -s nullglob

total=0

for f in */*/*.pdf
do
        temp=`pdfinfo "$f" 2>/dev/null | grep Pages | cut -d ":" -f 2`
       
        let total=`expr $total`+`expr $temp`
done

echo "Total:$total"