Print records from a recfile: a human-editable, plain text database.


Extract name and version field

$ recsel -p name,version [data.rec]

Use "~" to match a string with a given regular expression
$ recsel -e "[field_name] ~ '[regular_expression]' [data.rec]"

Use a predicate to match a name and a version
$ recsel -e "name ~ '[regular_expression]' && version ~ '[regular_expression]'" [data.rec]


recsel [OPTION]... [-t TYPE] [-j FIELD] [-n INDEXES | -e RECORD_EXPR | -q STR | -m NUM] [-c | (-p|-P) FIELD_EXPR] [FILE]...


Select and print rec data.

-d, --include-descriptors

print record descriptors along with the matched records.

-C, --collapse

do not section the result in records with newlines.

-S, --sort=FIELD,...

sort the output by the specified fields.

-G, --group-by=FIELD,...

group records by the specified fields.

-U, --uniq

remove duplicated fields in the output records.

-s, --password=STR

decrypt confidential fields with the given password.


print a help message and exit.


show version and exit.

Record selection options:

-i, --case-insensitive

make strings case-insensitive in selection expressions.

-t, --type=TYPE

operate on records of the specified type only.

-e, --expression=RECORD_EXPR

selection expression.

-q, --quick=STR

select records with fields containing a string.

-n, --number=NUM,...

select specific records by position, with ranges.

-m, --random=NUM

select a given number of random records.

-j, --join=FIELD

perform an inner join using the specified field.

Output options:

-p, --print=FIELDS

comma-separated list of fields to print for each matching record.

-P, --print-values=FIELDS

as -p, but print only the values of the selected fields.

-R, --print-row=FIELDS

as -P, but separate the values with spaces instead of newlines.

-c, --count

print a count of the matching records instead of the records themselves.

Special options:


print the data in sexps instead of rec format.


Report bugs to:
GNU recutils home page: <>
General help using GNU software: <>


Copyright © 2010-2019 Jose E. Marchesi. License GPLv3+: GNU GPL version 3 or later <>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


The full documentation for recsel is maintained as a Texinfo manual. If the info and recsel programs are properly installed at your site, the command info recutils should give you access to the complete manual.


Written by Jose E. Marchesi.

Copied to clipboard