gcjbr / wc_in_go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WC in Go

This is just my own attempt at replicating Unix wc command in go.

As per man wc, this CLI tool should have the following characteristics:

The wc utility displays the number of lines, words, and bytes contained in each input file, or standard input (if no file is specified) to the
     standard output.  A line is defined as a string of characters delimited by a ⟨newline⟩ character.  Characters beyond the final ⟨newline⟩ character
     will not be included in the line count.

     A word is defined as a string of characters delimited by white space characters.  White space characters are the set of characters for which the
     iswspace(3) function returns true.  If more than one input file is specified, a line of cumulative counts for all the files is displayed on a
     separate line after the output for the last file.

     The following options are available:

     -c      The number of bytes in each input file is written to the standard output.  This will cancel out any prior usage of the -m option.

     -l      The number of lines in each input file is written to the standard output.

     -m      The number of characters in each input file is written to the standard output.  If the current locale does not support multibyte characters,
             this is equivalent to the -c option.  This will cancel out any prior usage of the -c option.

     -w      The number of words in each input file is written to the standard output.

Usage

$ go get github.com/gcjbr/wc_in_go
$ go build

Add to your PATH

Move the binary to your PATH

$ mv wc-go /usr/local/bin

Example

$ wc-go -l
$ wc-go -w
$ wc-go -m
$ wc-go -c
$ wc-go -cwl # It accepts multiple options combined
$ wc-go       # It will default to -lwmc

License

MIT

About


Languages

Language:Go 100.0%