rwcompare(1)

NAME
rwcompare - Compare the records in two SiLK Flow files

SYNOPSIS
  rwcompare [--quiet] [--site-config-file] FILE1 FILE2

  rwcompare --help

  rwcompare --version

DESCRIPTION
rwcompare opens the two files named on the command and compares the SiLK Flow records they contain. If the records are identical, rwcompare exits with status 0. If any of the records differ, rwcompare prints a message and exits with status 1. If there is an issue reading either file, an error is printed and the exit status is 2. Use the --quiet switch to suppress all output (error messages included). You may use "-" or "stdin" for one of the file names, in which case rwcompare reads from the standard input.

OPTIONS
Option names may be abbreviated if the abbreviation is unique or is an exact match for an option. A parameter to an option may be specified as --arg=param or --arg param, though the first form is required for options that take optional parameters.

--quiet
    Do not print a message if the files differ, and do not an print error message if a file cannot be opened or read.

--site-config-file=FILENAME
    Read the SiLK site configuration from the named file FILENAME. When this switch is not provided, rwcombine searches for the site configuration file in the locations specified in the "FILES" section.

--help
    Print the available options and exit.

--version
    Print the version number and information about how SiLK was configured, then exit the application.

EXAMPLES
In the following examples, the dollar sign ($) represents the shell prompt. Some input lines are split over multiple lines in order to improve readability, and a backslash (\) is used to indicate such lines. The examples assume the existence of the file data.rw that contains SiLK Flow records. The exit status of the most recent command is available in the shell variable $?.

Compare a file with itself:

 $ rwcompare data.rw data.rw
 $ echo $?
 0

Compare a file with itself, where one instance of the file is read from the standard input:

 $ rwcat data.rw | rwcompare - data.rw
 $ echo $?
 0

Use rwsort(1) to modify one instance of the file and compare the results:

 $ rwsort --fields=proto data.rw | rwcompare - data.rw
 - data.rw differ: record 1
 $ echo $?
 1

Run the command again and use the --quiet switch:

 $ rwsort --fields=proto data.rw | rwcompare --quiet - data.rw
 $ echo $?
 1

Compare the file with input containing two copies of the file:

 $ rwcat data.rw data.rw | rwcompare data.rw -
 data.rw - differ: EOF data.rw
 $ echo $?
 1

Compare the file with /dev/null:

 $ rwcompare --quiet /dev/null data.rw
 $ echo $?
 2

rwcompare checks whether two files have the same records in the same order. To compare two arbitrary files, use rwsort(1) to reorder the records. Make certain to provide enough fields to the rwsort command so that the records are in the same order.

 $ rwsort --fields=1-10,12-15,20-29 data.rw > /tmp/sorted-data.rw
 $ rwsort --fields=1-10,12-15,20-29 other-data.rw   \
   | rwcompare /tmp/sorted-data.rw -
 /tmp/sorted-data.rw - differ: record 103363

ENVIRONMENT

SILK_CONFIG_FILE
    This environment variable is used as the value for the --site-config-file when that switch is not provided.

SILK_DATA_ROOTDIR
    This environment variable specifies the root directory of data repository. As described in the "FILES" section, rwcombine may use this environment variable when searching for the SiLK site configuration file.

SILK_PATH
    This environment variable gives the root of the install tree. When searching for configuration files, rwcombine may use this environment variable. See the "FILES" section for details.

FILES

${SILK_CONFIG_FILE}
${SILK_DATA_ROOTDIR}/silk.conf
/usr/share/silk/silk.conf
${SILK_PATH}/share/silk/silk.conf
${SILK_PATH}/share/silk.conf
/usr/share/silk/silk.conf
/usr/share/silk.conf
    Possible locations for the SiLK site configuration file which are checked when the --site-config-file switch is not provided.

SEE ALSO
rwfileinfo(1), rwcat(1), rwsort(1), silk(7)