Recutils

From Wikipedia the free encyclopedia

recfiles
Filename extension
.rec
Type of formatData interchange
Open format?yes
Free format?yes
Websitewww.gnu.org/software/recutils/
GNU Recutils
Original author(s)Jose E. Marchesi
Initial releaseDecember 3, 2010; 14 years ago (2010-12-03)
Stable release
1.9 / April 16, 2022; 3 years ago (2022-04-16)[1]
Repositorygit.savannah.gnu.org/cgit/recutils.git
Written inC
LicenseGNU General Public License
Websitewww.gnu.org/software/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 – confirm 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).

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 – Sort records
  • 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]