Fsdb::F...r::dbrow(3)

πŸ“¦
version 3.9 Β· 3 versions
, in epel 9

🌸 NAME 🌸

Okay bestie, meet dbrow β€” from the manual page Fsdb::F...r::dbrow(3) (User Contributed Perl Documentation, if you were curious). Its whole thing is: select rows from an Fsdb file based on arbitrary conditions. That’s the name, no cap. πŸ’…


✨ SYNOPSIS ✨

dbrow [-vw] CONDITION [CONDITION...]

Yep, that’s the summoning spell: dbrow, then [-vw], then one or more CONDITIONs. Periodt. πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

Select rows for which all CONDITIONS are true. Literally all of them β€” if even one condition is false, that row is not invited to the group chat. πŸ™ˆ

Conditions are specified as Perl code, and column names are embedded in there, preceded by underscores. So you’re writing lil Perl-flavored conditions and letting dbrow vibe-check the rows. ✨


πŸ’… OPTIONS πŸ’…

Okay options time β€” don’t skip, these are the rules:

  • -v β€” Invert the selection, picking rows where at least one condition does not match. It’s giving uno reverse card πŸ”„.

This module also supports the standard fsdb options, bestie:

  • -d β€” Enable debugging output.
  • -w or --warnings β€” Enable warnings in user supplied code.
  • -i or --input InputSource β€” Read from InputSource, typically a file name, or "-" for standard input, or (if in Perl) a IO::Handle, Fsdb::IO or Fsdb::BoundedQueue objects.
  • -o or --output OutputDestination β€” Write to OutputDestination, typically a file name, or "-" for standard output, or (if in Perl) a IO::Handle, Fsdb::IO or Fsdb::BoundedQueue objects.
  • --autorun or --noautorun β€” By default, programs process automatically, but Fsdb::Filter objects in Perl do not run until you invoke the run() method. The "--(no)autorun" option controls that behavior within Perl.
  • --header H β€” Use H as the full Fsdb header, rather than reading a header from then input.
  • --help β€” Show help.
  • --man β€” Show full manual.

πŸŽ€ SAMPLE USAGE πŸŽ€

Demo time, bestie β€” exact commands, exact facts, all the vibes. 🫢

Input:

#fsdb account passwd uid gid fullname homedir shell
johnh * 2274 134 John_Heidemann /home/johnh /bin/bash
greg * 2275 134 Greg_Johnson /home/greg /bin/bash
root * 0 0 Root /root /bin/bash
# this is a simple database

Command:

cat DATA/passwd.fsdb | dbrow '_fullname =~ /John/'

Output:

#fsdb      account passwd  uid     gid     fullname        homedir shell
johnh   *       2274    134     John_Heidemann  /home/johnh     /bin/bash
greg    *       2275    134     Greg_Johnson    /home/greg      /bin/bash
# this is a simple database
#  | /home/johnh/BIN/DB/dbrow

πŸ’€ BUGS πŸ’€

Bug alert: it doesn’t detect references to unknown columns in conditions. So yeah, that’s the tea. 😭

Also, the original page has this little end-of-file artifact β€” keeping it exactly as it appears:

END
    #' for font-lock mode.
    exit 1;

πŸ‘‘ CLASS FUNCTIONS πŸ‘‘

Perl besties, this part is for you:

new

$filter = new Fsdb::Filter::dbrow(@arguments);

Create a new dbrow object, taking command-line arguments.

set_defaults

$filter->set_defaults();

Internal: set up defaults.

parse_options

$filter->parse_options(@ARGV);

Internal: parse command-line arguments.

setup

$filter->setup();

Internal: setup, parse headers.

run

$filter->run();

Internal: run over each rows. (Their words, not mine β€” iconic grammar chaos. πŸ’€)


Copyright (C) 1991-2018 by John Heidemann johnh@isi.edu.

This program is distributed under terms of the GNU general public license, version 2. See the file COPYING with the distribution for details.


xoxo πŸ’– β€” footer kiss: perl v5.32.1, dated 2024-08-02, for Fsdb::F...r::dbrow(3). Slay, bestie. 🌈

πŸ“¦ where this page comes from