Skip to content

gcjbr/wc_in_go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages