GNU Recutils es un conjunto de utilidades de línea de comandos libre, parte del proyecto GNU, para realizar operaciones básicas de bases de datos relacionales en archivos de texto plano, como tipado de campos, autoincrementos y joins. Los archivos fuente —llamados recfiles— siguen un formato estructurado, y dado que son archivos de texto plano, pueden ser editados por cualquier editor de texto. Existen además otras bibliotecas que implementan el formato.

Contenido Las utilidades de línea de comandos que componen al proyecto son las siguientes: recinf Muestra información sobre un recfile recsel Busca y muestra campos de registros que coinciden con una consulta recins Inserta o reemplaza un registro recdel Elimina uno o más registros recfix Ordena registros recset Añade o modifica campos individuales

Además, el proyecto contiene una biblioteca en C que implementa el formato, utilidades para convertir desde varios formatos a recfile (csv2rec, por ejemplo), y un modo para Emacs (rec-mode).

Recfile Un recfile es un archivo de texto que contiene registros, compuestos por campos, cada uno en una línea que comienza por el nombre del campo seguido de un carácter de dos puntos (:). En un solo archivo pueden existir muchos registros, cada uno dividido por líneas vacías. Una línea muy larga puede ser ajustada por legibilidad, escapando el salto de línea con una diagonal invertida.

Los campos pueden ser tanto obligatorios como opcionales, y se puede establecer restricciones sobre los valores.

Ejemplo Lo siguiente es un ejemplo de un recfile, que contiene datos sobre cinco sencillos del grupo surcoreano Twice: %rec: Sencillos %type: Anio int

Titulo: TT Anio: 2016 Album: Twicecoaster: Lane 1

Titulo: What Is Love? Anio: 2018 Album: What Is Love

Titulo: Feel Special Anio: 2019 Album: Feel Special

Titulo: Talk That Talk Anio: 2022 Album: Between 1&2

Titulo: Set Me Free Anio: 2023 Album: Ready to Be

El siguiente comando selecciona los registros donde el campo Anio sea mayor a 2019, e imprime en la salida el campo Titulo. Dado que los dos últimos registros cumplen con la condición, son seleccionados:

$ recsel -e 'Anio>"2019"' -p Titulo

Véase también Modelo de tabla, o bases de datos de texto plano Otros ejemplos de formatos de texto plano Asciidoc, para documentación Org-mode, modo de Emacs para texto libre TOML, para configuraciones

Referencias

Categoría:Proyecto GNU