BibTooL: a suite of tools for simple operations on BibTeX files

Description | Downloads | Examples | Older Releases | License


The BibTooL project comprises a set of shell scripts for simple processing of bibtex files. The term `simple processing' can be understood as the level of processing needed to reach a clean/consistent/organized state of a bibtex "database". The challenging part of this project is that it fullfils its goal having as a basis the power and flexibility that a shell provides. The ultimate goal of this project is to be portable to various platforms, such as Linux, Unix, SunOS, Mac OS X, Windows, etc. This is not the case right now, but it shall be while the project evolves.


The latest version of BibTooL is 0.3. In the following you may find information related to the development of the project, as well as download the source code.


This section demonstrates the capabilities of BibTooL by way of examples.

  • You are doing you PhD and it happens to be at the writing of a survey paper with you supervisor that, obviously, contains a lot, lot of references. And then, at some point when you are about to submit it, and you are off the limits of the total number of pages, you receive his corrections on the references section. The corrections are like "remove references [1], [14], and [25]", "add these two references here, [10, 43]", etc. You are then supposed to go the references section, check out these numbers, go back to the bibtex file, use the "Search/Find" facility of your prefered editor to locate one-by-one the respective bibitems, and last search all your input .tex files to find where these bibitems appear, and bla, bla, bla, ...

    With BibTooL you can re-use the file with extension .bbl that has been produced by the bibtex command and easily recover the number to bibid mapping.

    $ bib bblorder sample.bbl
    1 gml
    2 gml-sf
    3 ogc-sql
    4 ogc-wkt
    93 hydrOntology
    94 GeoLinkINSPIRE
    95 Wessel2009Flexible
  • You have many .bib files containing duplicate bibtex entries (here a duplicate entry is one that is appeared twice or more under the same bibid) and would like to locate them.

    $ bib dups sample0.bib sample2.bib 
    # bud1991biotechnology
    # Tibbo2002
    # HristidisGP03
    # BLINKS
    Found 21 duplicate entries

    In the above output, lines starting with character # contain the duplicate bibid of a bibitem. This line is followed by the locations (line/filename) at which a duplicate bibitem is to be found. Files sample0.bib and sample2.bib contain a total of 21 duplicate entries. The entry with id BLINKS can be found at line 1033 of file sample0.bib and at line 43 of file sample2.bib. Notice that if a filename contains duplicate entries itself, these will also appear, as the following example illustrates.

    $ bib dups sample1.bib sample2.bib
    # DBLP:journals/debu/HulgeriBNCS01
    # bud1991biotechnology
    # DBLP:conf/vldb/97
    Found 214 duplicate entries

Older Releases

In this section you may find older releases.




BibTooL is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License (GPLv3).

GPLv3 logo by Christian Candena

Charalampos Nikolaou homepage