dcat 1.0.1 copy "dcat: ^1.0.1" to clipboard
dcat: ^1.0.1 copied to clipboard

An implementation of the standard cat Unix utility that concatenates file(s) to standard output or file.

License (3-Clause BSD) GitHub CI codecov pub package

dcat: Concatenate File(s) to Standard Output or File #

A Dart command-line and library implementation of the standard cat Unix utility, inspired by the Write command-line apps sample code.

Synopsis #

dcat sequentially reads files, or standard input if none are given, writing them to standard output or file.

Command-Line Usage #

dcat --help
Usage: dcat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

  -A, --show-all                 equivalent to -vET
  -b, --number-nonblank          number nonempty output lines, overrides -n
  -e, --show-nonprinting-ends    equivalent to -vE
  -E, --show-ends                display $ at end of each line
  -h, --help                     display this help and exit
  -n, --number                   number all output lines
  -t, --show-nonprinting-tabs    equivalent to -vT
  -T, --show-tabs                display TAB characters as ^I
  -s, --squeeze-blank            suppress repeated empty output lines
  -v, --show-nonprinting         use ^ and M- notation, except for LFD and TAB
      --version                  output version information and exit

Examples:
  dcat f - g  Output f's contents, then standard input, then g's contents.
  dcat        Copy standard input to standard output.

Compile Standalone Application #

Linux / MacOS #

dart compile exe -o bin/dcat bin/dcat.dart

Windows #

dart compile exe bin/dcat.dart

Library Usage #

dart pub add dcat
import 'package:dcat/dcat.dart';

final result = await cat(['path/to/file', 'path/to/otherfile]'],
    File('path/to/outfile').openWrite());
if (result.isFailure) {
  for (final error in result.errors) {
    print('Error: ${error.message}');
  }
}

View Full Instructions

The cat function supports the following parameters:

Parameter Description Type
paths The file paths. String[]
output The standard output or file. IOSink
input The standard input. Stream
showEnds Same as -e bool
numberNonBlank Same as -b bool
showLineNumbers Same as -n bool
showTabs Same as -T bool
squeezeBlank Same as -s bool
showNonPrinting Same as -v bool
  • paths and output are required.
  • output should be an IOSink such as stdout or a File stream.
  • input can be stdin.

The remaining optional parameters are similar to the GNU cat utility.

A CatResult object is returned which contains the exitCode (exitSuccess or exitFailure) and errors, if any:

final result = 
    await cat(['path/to/file'], stdout, showLineNumbers: true);
if (result.exitCode == exitSuccess) { // or result.isSuccess
  // ...
} else {
  for (final error in result.errors) {
    stderr.writeln("Error with '${error.path}': ${error.message}");
  }
}

View Full Example

2
likes
160
points
43
downloads

Documentation

API reference

Publisher

verified publisherthauvin.net

Weekly Downloads

An implementation of the standard cat Unix utility that concatenates file(s) to standard output or file.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (license)

Dependencies

args, indent

More

Packages that depend on dcat