osmium-sort man page

osmium-sort — sort OSM files


osmium sort [OPTIONS] OSM-FILE...


Merges the content of all input files given on the command line and sort the result.

Objects are sorted by type, ID, and version. IDs are sorted negative IDs first, the positive IDs, both ordered by their absolute values. So the sort order for types and IDs is:

node -1, node -2, ..., node 1, node 2, ..., way -1, way -2, ..., way 1, way 2, ..., relation -1, relation -2, ..., relation 1, relation 2, ...

If there are several objects of the same type and with the same ID they are ordered by ascending version.

This command works with normal OSM data files, history files, and change files.

This commands reads its input file(s) only once and writes its output file in one go so it can be streamed, ie. it can read from STDIN and write to STDOUT.

Common Options

-h, --help

Show usage help.

-v, --verbose

Set verbose mode. The program will output information about what it is doing to STDERR.

Input Options

-F, --input-format=FORMAT

The format of the input file(s). Can be used to set the input format if it can't be autodetected from the file name(s). This will set the format for all input files, there is no way to set the format for some input files only. See osmium-file-formats(5) or the libosmium manual for details.

Output Options

-f, --output-format=FORMAT

The format of the output file. Can be used to set the output file format if it can't be autodetected from the output file name. See osmium-file-formats(5) or the libosmium manual for details.


Call fsync after writing the output file to force flushing buffers to disk.


The name and version of the program generating the output file. It will be added to the header of the output file. Default is "osmium/" and the version of osmium.

-o, --output=FILE

Name of the output file. Default is '-' (STDOUT).

-O, --overwrite

Allow an existing output file to be overwritten. Normally osmium will refuse to write over an existing file.


Add output header option. This option can be given several times. See the libosmium manual for a list of allowed header options.


osmium sort exits with exit code


if everything went alright,


if there was an error processing the data, or


if there was a problem with the command line arguments.

Memory Usage

osmium sort keeps the contents of all the input files in main memory. This will take roughly 10 times as much memory as the files take on disk in .osm.bz2 or osm.pbf format.


Sort in.osm.bz2 and write out to sorted.osm.pbf:

osmium sort -o sorted.osm.pbf in.osm.bz2

See Also


If you have any questions or want to report a bug, please go to http://osmcode.org/contact.html


Jochen Topf <jochen@topf.org>.

Referenced By

osmium(1), osmium-check-refs(1), osmium-fileinfo(1), osmium-renumber(1).