Fsdb::F...browuniq(3)

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

🌸 NAME 🌸

Hey bestie! You're reading the manual page for Fsdb::F...browuniq(3) β€” the User Contributed Perl Documentation moment is real. It's the page for dbrowuniq, and its whole job is: eliminate adjacent rows with duplicate fields, maybe counting. Periodt. πŸŽ€

✨ SYNOPSIS ✨

dbrowuniq [-cFLB] [uniquifying fields...]

πŸ’… DESCRIPTION πŸ’…

Okay so dbrowuniq eliminates adjacent rows that have duplicate fields, and it can maybe count them too. It's roughly equivalent to the Unix uniq command, but it can optionally operate only on the fields you specify. Iconic.

By default, all columns have to be unique. If you give column names, then only those columns have to be unique, and the first row with those columns is returned.

Important vibe check: dbrowuniq eliminates only identical rows that are adjacent. If you want to eliminate identical rows across the entire file, you have to make them adjacent β€” maybe by using dbsort on your uniquifying field. Example: an input with three lines a/b/a will produce three lines of output with both a's. But if you dbsort it, it becomes a/a/b, and then dbrowuniq outputs a/b. No cap. πŸ¦‹

By default, dbrowuniq outputs the first unique row. Optionally, with -L, it outputs the last unique row, or with -B it outputs both the first and last. (This choice only matters when uniqueness is determined by specific fields.) Slay.

dbrowuniq can also count how many unique, adjacent lines it finds with -c, and the count goes into a new column (defaulting to count). Incremental counting is possible with -I when the count column already exists. With incremental counting, the existing count column is summed. Math girlie behavior. ✨

πŸŽ€ OPTIONS πŸŽ€

  • -c or --count β€” Create a new column (count) which counts the number of times each line occurred. The new column is named by the -N argument, defaulting to count.
  • -N on --new-name β€” Specify the name of the count column, if any. Please specify the type with the name, if desired (allowing one to pick sizes smaller than the default quad, if desired). (Default is count:q.)
  • -I on --incremental β€” Incremental counting. If the count column exists, it is assumed to have a partial count and the count accumulates. If the count column doesn't exist, it is created.
  • -L or --last β€” Output the last unique row only. By default, it outputs the first unique row.
  • -F or --first β€” Output the first unique row only. (This output is the default.)
  • -B or --both β€” Output both the first and last unique rows.

This module also supports the standard fsdb options:

  • -d β€” Enable debugging output.
  • -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 πŸ¦‹

Input:

#fsdb      event
_null_getpage+128
_null_getpage+128
_null_getpage+128
_null_getpage+128
_null_getpage+128
_null_getpage+128
_null_getpage+4
_null_getpage+4
_null_getpage+4
_null_getpage+4
_null_getpage+4
_null_getpage+4
#  | /home/johnh/BIN/DB/dbcol event
#  | /home/johnh/BIN/DB/dbsort event

Command:

cat data.fsdb | dbrowuniq -c

Output:

#fsdb       event   count
_null_getpage+128   6
_null_getpage+4     6
#   2       /home/johnh/BIN/DB/dbcol        event
#  | /home/johnh/BIN/DB/dbrowuniq -c

🌈 SAMPLE USAGE 2 🌈

Retaining the last unique row as an example.

Input:

#fsdb event i
_null_getpage+128 10
_null_getpage+128 11
_null_getpage+128 12
_null_getpage+128 13
_null_getpage+128 14
_null_getpage+128 15
_null_getpage+4 16
_null_getpage+4 17
_null_getpage+4 18
_null_getpage+4 19
_null_getpage+4 20
_null_getpage+4 21
#  | /home/johnh/BIN/DB/dbcol event
#  | /home/johnh/BIN/DB/dbsort event

Command:

cat data.fsdb | dbrowuniq -c -L event

Output:

#fsdb event i count
_null_getpage+128       15      6
#  | /home/johnh/BIN/DB/dbcol event
#  | /home/johnh/BIN/DB/dbsort event
_null_getpage+4 21      6
#   | dbrowuniq -c

⭐ SAMPLE USAGE 3 ⭐

Incremental counting.

Input:

#fsdb       event   count
_null_getpage+128   6
_null_getpage+128   6
_null_getpage+4     6
_null_getpage+4     6
#  /home/johnh/BIN/DB/dbcol event
#  | /home/johnh/BIN/DB/dbrowuniq -c

Command:

cat data.fsdb | dbrowuniq -I -c event

Output:

#fsdb event count
_null_getpage+128   12
_null_getpage+4     12
#  /home/johnh/BIN/DB/dbcol     event
#  | /home/johnh/BIN/DB/dbrowuniq -c
#   | dbrowuniq -I -c event

πŸ‘‘ SEE ALSO πŸ‘‘

Fsdb.

🧚 CLASS FUNCTIONS 🧚

πŸ“ new πŸ“

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

Create a new dbrowuniq 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.

Copyright (C) 1997-2022 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.


That's the whole page, bestie! It came from perl v5.32.1, dated 2024-08-02, and it's Fsdb::F...browuniq(3) forever. πŸ’–βœ¨

πŸ“¦ where this page comes from