Tekst samenvoegen met shell script
Je hebt een aantal tekst bestanden die je wil samenvoegen tot een groot bestand, om een “zoek” te kunnen doen op het geheel, of om het af te drukken, enz.
De bestanden kunnen zijn:
- teksten zijn met Kate of notepad gemaakt, als ideeën, brainstorm teksten in een directory
- configuratiefiles van een programma; meestal ook pure tekst (daarom niet met die extentie .txt maar bv .cfg)
- shell scripts met extentie .sh bv.
- log files (met extentie .log bv)
- source files van een programma
In het onderstaande voorbeeld zijn het source files, maar de methode is hetzelfde:
- welke extenties zijn het?
- waar staan ze?
- waar moet het resultaat komen?
Ik zet nog lijntjes om de onderdelen uit elkaar te houden en nadien gemakkelijk begin/einde te vinden.
Ik maak ook een kleine inhoudstabel “tempContent” en nadien wordt die onderaan het bestand geplakt.
Je kan gemakkelijk uitbreiden: als je bv ook *.form wil opnemen moet je die gewoon toevoegen in de regel met for j.
# make a single source file for print purpose etc. destination="./SourceFacs.txt" tempContent="./SourceTemp.txt" oneline=" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " doubleline=" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = " rm $destination rm $tempContent touch $destination touch $tempContent target="./../Documents/GambasPrj/Dev/facs/" echo "Compilatie " >> $destination echo " Content: " >> $tempContent for j in "*.module" "*.class" ; do for i in `find $target -name $j`; do echo $i >> $tempContent echo $i >> $destination echo "" >> $destination cat $i >> $destination echo "" >> $destination echo $oneline >> $destination done echo $doubleline >> $destination echo $doubleline >> $tempContent echo "" done echo " * * * " >> $destination echo "" >> $destination cat $tempContent >> $destination echo " Compilation ready: " ls -lF $destination
Het resultaat is een tekstbestand dat eerst de .module bestanden bevat, daarna de *.class bestanden, en onderaan een lijst met de bestanden, ook eerst de modules en daarna de class.
In OpenOffice.org Writer doe je daarna “Insert, File” en kiest de samengevoegde tekst.
Zet bij Stijl en opmaak het standaardlettertype op 9pt.
Dan Format, Page, 3 kolommen.
Op deze manier kan je broncode tekst van in totaal 133 pagina’s terugbrengen tot 50 pagina’s om te drukken (recto/verso=25 blz) .