med2ris(1) converts Medline/Pubmed bibliographic data to the RIS format


med2ris [-e logdest] [-f from-encoding] [-h] [-i] [-l loglevel] [-L logfile] [-o file] [-O file] [-q] [-t to-encoding] [-T type] [-y path]


med2ris converts Pubmed reference data into RIS data. The converter understands both the tagged Pubmed format (which superficially resembles RIS) and the XML format according to the m[blue]PubMedArticle DTDm[][1]. In most cases med2ris is able to automatically detect the input data type.


-e log-destination

log-destination can have the values 0, 1, or 2, or the equivalent strings stderr, syslog, or file, respectively. This value specifies where the log information goes to. 0 (zero) means the messages are sent to stderr. They are immediately available on the screen but they may interfere with command output. 1 will send the output to the syslog facility. Keep in mind that syslog must be configured to accept log messages from user programs, see the syslog(8) man page for further information. Unix-like systems usually save these messages in /var/log/user.log. 2 will send the messages to a custom log file which can be specified with the -L option.

-f from-encoding

Select the input character encoding. Supported encodings are platform-dependent and can usually be found in iconv_open(3). If no encodings are specified, ISO-8859-1 aka Latin-1 is assumed.


Displays help and usage screen, then exits.


Output additional information about unknown or unused tags. Mainly useful to debug the conversion if the input format has changed.

-l log-level

Specify the priority up to which events are logged. This is either a number between 0 and 7 or one of the strings emerg, alert, crit, err, warning, notice, info, debug, respectively (see also Log level definitions). -1 disables logging completely. A low log level like 0 means that only the most critical messages are logged. A higher log level means that less critical events are logged as well. 7 will include debug messages. The latter can be verbose and abundant, so you want to avoid this log level unless you need to track down problems.

-L log-file

Specify the full path to a log file that will receive the log messages. Typically this would be /var/log/refdba.

-o file

Send output to file. If file exists, its contents will be overwritten.

-O file

Send output to file. If file exists, the output will be appended.


Start without reading the configuration files. The client will use the compile-time defaults for all values that you do not set with command-line switches.

-t to-encoding

Select the output character encoding. Supported encodings are platform-dependent and can usually be found in iconv_open(3). If no encodings are specified, ISO-8859-1 aka Latin-1 is assumed.

-T type

Overrides the automatic type detection. Allowed values for type are "tag" and "xml" for the tagged Pubmed format and the XML Pubmed format, respectively.

-y confdir

Specify the directory where the global configuration files are Note: By default, all RefDB applications look for their configuration files in a directory that is specified during the configure step when building the package. That is, you don't need the -y option unless you use precompiled binaries in unusual locations, e.g. by relocating a rpm package.


med2ris evaluates the file med2risrc to initialize itself.

Table 1. med2risrc

Variable Default Comment
outfile (none) The default output file name.
outappend t Determines whether output is appended (t) to an existing file or overwrites (f) an existing file.
unmapped t If set to t, unknown tags in the input data will be output following a <unmapped> tag; the resulting data can be inspected and then be sent through sed to strip off these additional lines. If set to f, unknown tags will be gracefully ignored.
from_enc ISO-8859-1 The character encoding of the input data
to_enc ISO-8859-1 The character encoding of the output data
logfile /var/log/med2ris.log The full path of a custom log file. This is used only if logdest is set appropriately.
logdest 1 The destination of the log information. 0 = print to stderr; 1 = use the syslog facility; 2 = use a custom logfile. The latter needs a proper setting of logfile.
loglevel 6 The log level up to which messages will be sent. A low setting (0) allows only the most important messages, a high setting (7) allows all messages including debug messages. -1 means nothing will be logged.


Keywords with multiple MeSH subheadings are split into multiple keywords with one MeSH subheading each. This simplifies searching for MeSH subheadings greatly.

med2ris does not validate the input files. That is, the input files must stick to the rules of the data sources, otherwise the conversion results are not predictable.



The global configuration file of med2ris.


The user configuration file of med2ris.


med2ris was written by Markus Hoenicka <[email protected]>.