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

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
ZX Spectrum
Inlägg: 4905
Blev medlem: 04 jan 2007, 22:58
OS: Ubuntu
Utgåva: Vet inte/ingen utgåva passar
Ort: Göteborg

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

Inlägg 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?
Bild
Jag vet vad jag vill, men vill inte det jag vet, men ändå vet jag ingenting och nu vet jag garanterat inte vad jag snackar om
David Andersson
Inlägg: 1269
Blev medlem: 15 dec 2007, 03:20
OS: Xubuntu

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

Inlägg 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.
gusnan
Inlägg: 348
Blev medlem: 17 jan 2007, 08:20
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

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

Inlägg 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"
Användarvisningsbild
ZX Spectrum
Inlägg: 4905
Blev medlem: 04 jan 2007, 22:58
OS: Ubuntu
Utgåva: Vet inte/ingen utgåva passar
Ort: Göteborg

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

Inlägg 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
Bild
Jag vet vad jag vill, men vill inte det jag vet, men ändå vet jag ingenting och nu vet jag garanterat inte vad jag snackar om
Användarvisningsbild
ZX Spectrum
Inlägg: 4905
Blev medlem: 04 jan 2007, 22:58
OS: Ubuntu
Utgåva: Vet inte/ingen utgåva passar
Ort: Göteborg

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

Inlägg 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"
Bild
Jag vet vad jag vill, men vill inte det jag vet, men ändå vet jag ingenting och nu vet jag garanterat inte vad jag snackar om
Skriv svar

Återgå till "Terminalforum"