Olaf Dietsche <olaf+list.orgm...@olafdietsche.de> wrote: > Nick Dokos <nicholas.do...@hp.com> writes: > > [snip] > > But assuming that you are getting some error from org, you don't know > > where the problem is and you are trying to find it, it will be simpler > > to just use egrep: > > > > grep -E -n ':PROPERTIES:|:END:' foo.org > > > > will filter out the relevant lines, so all you have to do is scan the > > output by eye and spot any irregularity (consecutive :PROPERTIES: or > > consecutive :END: lines). Even if you have hundreds of them, that's > > *easy* for humans to do.[fn:2] > > > > Or, if you prefer, you can write trivial validation programs to operate > > on the output, e.g.: > > > > grep -E -n ':PROPERTIES:|:END:' foo.org | tee foo.out | grep PROP | > > wc -l > > grep END foo.out | wc -l > > > > (the counts 'd better be the same). > > Since you might have other drawers as well (LOGBOOK, CLOCK), the counts > need not be the same. >
Indeed - you might have user-defined drawers as well and they all contribute the :END: part, so the begin part will have to be fleshed out accordingly. But the generalization is easy and eyeballing the output is pretty effective: if you miss some drawer types, the repeating :END: stands out like a sore thumb. > > NB: At least GNU grep knows how to search for multiple regexps: > $ grep -e :PROPERTIES: -e :END: foo.org > So, no need for egrep here. > Ok - thanks. Nick