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

Reply via email to