++ed by:
PERLANCAR TSIBLEY PJFL BLHOTSKY AERO

7 PAUSE users
3 non-PAUSE users.

Author image Thomas Sibley 🚲
and 10 contributors

NAME

App::RecordStream::Manual::Examples - A set of simple recs examples

DESCRIPTION

This file provides a couple of useful examples of recs chains and how each of them break down. This is meant as a learning tool for folks new recs that would like to see some cool things you can do with RecordStream. Another good resource is App::RecordStream::Manual::Story, also viewable by running recs story, which is a humorous story meant to get the newest users used to recs.

EXAMPLES

How many processes is each user on my system running?

  recs fromps | recs collate --key uid -a count | recs sort --key count=n | recs totable

Broken down this is:

1. recs fromps

First get the records of all the prcesses currently running

2. recs collate --key uid -a count

Grouping by the uid field, count how many records fall into the group (stored in the count field by default)

3. recs sort --key count=n

Sort the resulting records by the count field numerically (rather than lexically)

4. recs totable

Print the output in a nicely formatted plain text table

How many processes for each user at each priority level?

  recs fromps | recs collate --key uid,priority -a count | recs toptable --x priority --y uid --v count

Broken down:

1. recs fromps

First get the records of all the prcesses currently running

2. recs collate --key uid,priority -a count

Grouping by the uid and the priority field, count how many records fall into the group

3. recs toptable --x priority --y uid -v count

Create a 2 dimensional table (a pivot table), across the top put the priority values, down the side put the uid, in each cell put the value of the count field for that priority/uid.

Prep a report on number of modules logging to Xorg.log

What Xorg modules put information in my Xorg.log at startup, and what log level are they logged at? I need this in CSV format for importing into a spreadsheet program.

  recs frommultire --re 'type,module=\((\S*)\) ([^:]+):' /var/log/Xorg.0.log \
    | recs collate --key type,module -a ct \
    | recs sort --key ct=n \
    | recs tocsv --header
1. recs frommultire --re 'type,module=\((\S*)\) ([^:]+):' /var/log/Xorg.0.log

Parse out the type and module from the Xorg log file. That regex captures non-whitespace inside a literal () pair, then captures text after a space up to the first : (colon).

2. recs collate --key type,module -a ct

Collate records into groups of type-modules, and count how many in each group across all records

3. recs sort --key ct=n

Sort by the count, numerically

4. recs tocsv --header

Output a table in spreadsheet format (no ASCII art), delimited by commas

SEE ALSO