Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Recutils

From Wikipedia, the free encyclopedia
GNU Recutils
Original authorJose E. Marchesi
ReleaseDecember 3, 2010; 15 years ago (2010-12-03)
Stable release
1.9 / April 16, 2022; 4 years ago (2022-04-16)[1]
Written inC
LicenseGNU General Public License
Websitewww.gnu.org/software/recutils/
Repositorygit.savannah.gnu.org/cgit/recutils.git
Fred and George, mascots of Recutils

Recutils, from GNU Project, is a free command-line toolset for performing basic relational database operations on plain text files[2][3] including field typing, auto-increment, and join. Storage files known as recfiles conform to a file format defined by the toolset. As plain text, recfiles can be edited via a text editor (as long it supports the character encoding). Various other software libraries support the format.[4][5][6]

A recfile is a text file with empty lines between records. Each field of a record is a line starting with the field name and a colon. Multiple record types can be in a single file. A long line can be wrapped (i.e. for readability).

Fields can be marked as mandatory and also have their value limited to a set of predefined values.

Tools include:

  • recsel – Search for and print fields from records matching a query
  • recins – Insert a record, or replace existing records
  • recdel – Delete a record, or delete a set of records
  • recfix – Check, fix, and sort rec files
  • recset – Add or update individual fields

Example

[edit]

The following is formatted as a recfile.

%rec: Text
%type: Year int

Author: Doug McIlroy
Year: 1964
Note: The Origin of Unix Pipes

Title: Unix Text Processing
Author: Dale Dougherty
Author: Tim O'Reilly
Year: 1987
Publisher: Hayden Books

Author: William Shakespeare
Title: Hamlet
Year: 1599
Year: 1600
Year: 1601

The following command selects records where a year field is greater than 1900 and outputs the author field values. The first two records have a year greater than 1900 so are selected. The first record has a single author and the second has two, so the result is three author names.

$ recsel -e 'Year > "1900"' -p Author
Author: Doug McIlroy
Author: Dale Dougherty
Author: Tim O'Reilly

See also

[edit]
  • asciidoc – Human-readable document format
  • Flat-file database – Database stored as flat data
  • org-mode – Open source mode for GNU Emacs
  • TOML – Configuration file format

References

[edit]
  1. "Index of /gnu/recutils". ftp.gnu.org. Retrieved 11 April 2023.
  2. "GNU Recutils". www.gnu.org. Retrieved 3 January 2025.
  3. James Tomasino (2020-01-26). "GNU Recutils". Retrieved 2020-02-09.
  4. František Kučera (2019-04-08). "Relational pipes and GNU Recutils".
  5. "Python-recutils". GitHub. 12 January 2022.
  6. "Aisamanra/Rrecutils". GitHub. 13 January 2022.
[edit]