The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

dbrowuniq - eliminate adjacent rows with duplicate fields, maybe counting

SYNOPSIS

dbrowuniq [-c] [uniquifying fields...]

DESCRIPTION

Eliminate adjacent rows with duplicate fields, perhaps counting them. Roughly equivalent to the Unix uniq command, but optionally only operating on the specified fields.

By default, all columns must be unique. If column names are specified, only those columns must be unique and the first row with those columns is returned.

Dbrowuniq eliminates only identical rows that adjacent. If you want to eliminate identical rows across the entirefile, you must make them adajcent, perhaps by using dbsort on your uniquifying field. (That is, the input with three lines a/b/a will produce three lines of output with both a's, but if you dbsort it, it will become a/a/b and dbrowuniq will output a/b.

OPTIONS

-c or --count

Create a new column (count) which counts the number of times each line occurred.

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.

--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

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.

AUTHOR and COPYRIGHT

Copyright (C) 1991-2012 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.