Ik wilde een scriptje maken die van Illustrator PDF files de naam en wijzigingsdatum herstelt aan de hand van de metagegevens die door Illustrator in de PDF worden meebewaard. Dit is nodig omdat door een 'gevalletje Murphy' een groot aantal Illustrator bestanden verloren zijn gegaan. Deze zijn teruggevist met het recovery programma 'Boomerang'. Dat programma bewaart echter de bestanden op volgnummer, dus de namen en datums moeten we zelf herstellen.
Nu kom ik telkens weer uit op hetzelfde probleem: ik gebruik regular expressions om de namen en datums uit de PDF source te vissen, maar dat werkt niet goed in de bash van MacOSX. In een editor zoals TextWrangler werkt het wel, ik kan op een Linux systeem ook probleemloos door de bestanden heen greppen, maar gebruik ik precies dezelfde opdrachten onder MacOSX dan gaat het fout. Het blijkt door leestekens te komen, greppen op 'Title' geeft resultaat, greppen op '%%Title' niet.
Voorbeeld oneliner:
Omdat de Apple bash blijkbaar niet automagisch de codering gaat casten, probeer ik met iconv naar een andere codetabel te converteren:
Ik heb alleen geen idee van en naar welke codetabel ik moet converteren (ik ben onderwijl wel de PDF-specificatie van Adobe aan het downloaden, misschien staat daar wat in).
Zijn deze problemen met tekstcodering normaal voor de Mac, of is mijn systeem stuk?
Als het (met jullie hulp) een beetje gaat lukken zal ik het complete script hier posten, altijd handig voor wie 't nogges nodig heeft
Nu kom ik telkens weer uit op hetzelfde probleem: ik gebruik regular expressions om de namen en datums uit de PDF source te vissen, maar dat werkt niet goed in de bash van MacOSX. In een editor zoals TextWrangler werkt het wel, ik kan op een Linux systeem ook probleemloos door de bestanden heen greppen, maar gebruik ik precies dezelfde opdrachten onder MacOSX dan gaat het fout. Het blijkt door leestekens te komen, greppen op 'Title' geeft resultaat, greppen op '%%Title' niet.
Voorbeeld oneliner:
text=`head -n 8 ./test.pdf`; \ echo $text | sed -n "s/.*%%Title:\s(\([^)]*\)).*/\1/p"
Omdat de Apple bash blijkbaar niet automagisch de codering gaat casten, probeer ik met iconv naar een andere codetabel te converteren:
text=`head -n 8 ./test.pdf | iconv -f MAC -t UTF8`; \ echo $text | sed -n "s/.*%%Title:\s(\([^)]*\)).*/\1/p"
Ik heb alleen geen idee van en naar welke codetabel ik moet converteren (ik ben onderwijl wel de PDF-specificatie van Adobe aan het downloaden, misschien staat daar wat in).
Zijn deze problemen met tekstcodering normaal voor de Mac, of is mijn systeem stuk?
Als het (met jullie hulp) een beetje gaat lukken zal ik het complete script hier posten, altijd handig voor wie 't nogges nodig heeft