DBFDUMP(1)

✨ DBFDUMP(1) ✨

okay so bestie, this is dbfdump from shplib (shapelib, the icon itself) and it does one job and does it gorgeously πŸ’…


🌸 NAME 🌸

dbfdump β€” dumps the content of a xBase file to the terminal 🫢


✨ SYNOPSIS ✨

dbfdump [-h] [-r] [-m] xbase_file

πŸ’– DESCRIPTION πŸ’–

So it dumps the contents of xbase_file straight to standard output, no cap. The first line is all the field names that show up in xbase_file, and then every line after that? That's the field values of a record. Literally one record per line, main character energy ✨

Field names AND values get padded with spaces so everything lines up to their field widths β€” it's giving organized, it's giving tidy πŸŽ€

And empty fields? Those print as the string (NULL). Noted. πŸ’€


πŸ’… OPTIONS πŸ’…

  • -h β€” output header info (field descriptions).

Prints the column field definitions before the other output. Every field definition is a line that looks like:

Field: index, Type=type, Title=`name', Width=width, Decimals=precision

where index is the zero offset column number of the field (yes, zero, we start at 0 around here 😭); type tells you the datatype of the field value and it's either "Integer", "Real" or "String"; name is the field's name; width is how many bytes are reserved for that field's value; and precision is the number of decimal places of precision for "Real" type fields β€” and it's zero for "Integer" and "String" type fields. periodt.

  • -r β€” output raw field info, numeric values not reformatted.

Prints the exact bytes occurring in xbase_file for field values, and it suppresses printing (NULL) for empty values. no filler, just vibes πŸ”₯

  • -m β€” output one line per field.

Prints each record in multiline format, separated by empty lines. The first line of a record tells you the number of the record like:

Records: record_index

where record_index is the zero offset number of the record in the file β€” then every field of the record shows up on its own line in this format:

name: value
  • xbase_file β€” the name of an existing xBase file. like, you gotta actually have one bestie πŸ™ˆ

🌈 EXAMPLE 🌈

dbfdump -h testbase.dbf

assuming that testbase.dbf has 1 record (inserted by other example using dbfadd), this command line will produce the following output:

Field 0: Type=String, Title='NAME', Width=20, Decimals=0
Field 1: Type=Double, Title='AREA', Width=9, Decimals=3
Field 2: Type=Double, Title='VALUE', Width=9, Decimals=2
NAME AREA VALUE REGION1 25.656 150.22

iconic, honestly. it ate πŸ’…


πŸ¦‹ EXIT STATUS πŸ¦‹

  1. 0 β€” Successful program execution. slay πŸŽ‰
  2. 1 β€” Missing xbase_file argument. you forgot the file bestie 😭
  3. 2 β€” Failed to open xbase_file.
  4. 3 β€” There are no fields in xbase_file. empty. void. nothing. πŸ’€

πŸ“ DIAGNOSTICS πŸ“

The following diagnostics may be issued on stdout:

DBFOpen(xbase_file,"r") failed.
There are no fields in this table!

πŸ‘‘ AUTHOR πŸ‘‘

dbfdump is part of shapelib, maintained by Frank Warmerdam. This guide was created by Eduardo Patoo Kanegae and converted to manpage by Johan Van de Wauw. It was further enhanced with the man page written by Joonas Pihlaja (jpihlaja@cc.helsinki.fi). shoutout to the whole squad 🫢


πŸ’€ BUGS πŸ’€

Unless the -r option is given, values in numeric fields that overflow the int or double types of the C language are printed as plus or minus a huge number. For integer fields the huge value is HUGE_VALL from

bestie that sentence just ends there, I'm not making it up, that's literally where it stops πŸ™ˆ

⭐ SEE ALSO ⭐

dbfadd(1), dbfcat(1), dbfcreate(1), dbfinfo(1), shpadd(1), shpcat(1), shpcentrd(1), shpcreate(1), shpdump(1), shpdxf(1), shpfix(1), shpinfo(1), shpproj(1), shprewind(1), shptest(1)


k that's the whole page bestie, go dump some xBase files πŸ’–

this was the shplib version, dated March 2026 β€” mwah, bye πŸŽ€βœ¨

πŸ“¦ where this page comes from